2016-08-14 5 views
0

grep Ich versuche, diesen Befehl auf meinem Server vom ServerMein Server reagiert nicht

grep -lr --include=*.php "eval(base64_decode" /path/to/webroot 

Absolut nichts passiert, keine Antwort zu verwenden.

Kann mir jemand helfen? Ich bin kein erfahrener Linux-Benutzer.

+0

Schauen Sie sich bitte [editing-help] (http://stackoverflow.com/editing-help) an. – Cyrus

+2

Um Ihr Problem zu verstehen, beseitigen Sie zuerst die ausgefallenen Argumente. Kannst du 'grep 'eval (base64_decode"/pfad/zu/webroot/subdir/one_phpFileOnly.php' zum arbeiten bekommen? (Lass die Suche zuerst für eine Datei arbeiten). Ich wette, es funktioniert nicht, was ist mit ' grep "eval"/pfad/zu ... oneFileOnly.php'? Ich wette, das funktioniert. Also ist es wahrscheinlich das '(' char. Wie wäre es mit 'grep" eval [(] base ... "....'? Else 'grep" eval [\ (] base ... "' Sobald das funktioniert, kannst du die allgemeinere Lösung wählen und die anderen Argumente hinzufügen. Viel Glück. – shellter

Antwort

2

Die GNU-Leute haben versagt, wenn sie grep Argumente gegeben haben, rekursiv nach Dateien zu suchen. Vergessen Sie jemals gehört, von -r oder --include und schreiben Sie Ihr Skript find zu verwenden die Dateien finden und grep zu G lobally für eine R suchen egular E xpression und P rint (g/re/p) das Ergebnis aus jede Datei (siehe die großen Hinweise in den Werkzeugnamen?). Zum Beispiel:

find /path/to/webroot -name '*.php' -print0 | 
xargs -0 grep -l 'eval(base64_decode' 

Wenn das gibt Ihnen noch ein Problem dann Schritt 1 bei der Fehlersuche ist es die find auf seine eigenen und sehen, ob es gibt eine Liste von Dateien auszuführen. Wenn ja, dann Schritt 2 ist die grep allein auf einer der Dateien von find ausgegeben. Wenn Sie das nicht herausfinden können, lassen Sie es uns wissen.

Verwandte Themen