seeseekey.net - Invictus Deus Ex Machina

Wie Heise ges­tern berich­tete (http://www.heise.de/newsticker/meldung/Gefahr-durch-offene-PHP-Luecke-1567433.html) gibt es eine wun­der­schöne Sicher­heits­lü­cke im Bezug auf CGI und PHP. So führt der Aufruf:

http://localhost/index.php?-s

dazu das der Quell­code der Web­seite aus­ge­ge­ben wird. Das ist natür­lich unprak­tisch wenn dort Kon­fi­gu­ra­ti­ons­va­ria­blen ent­hal­ten z.B. die Zugangs­da­ten für eine Daten­bank­ver­bin­dung. Zur Lösung des Pro­blems gibt es drei Varianten:

  • PHP Ver­sion mit dem Bug­fix einspielen
  • Rewrite Anwei­sung in die .htaccess
  • Wrap­per wel­cher vor dem PHP-CGI auf­ge­ru­fen wird

Die erste Vari­ante schei­det aus, da der aktu­elle Bug­fix leicht umgan­gen wer­den kann. Die zweite Vari­ante (ein­zu­tra­gen in eine „.htac­cess“) sieht so aus:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^[^=]*$
RewriteCond %{QUERY_STRING} %2d|\- [NC]
RewriteRule .? - [F,L]

Die dritte Vari­ante setzt einen Wrap­per vor den eigent­lich Auf­ruf und fil­tert die ent­spre­chen­den Anwei­sun­gen her­aus. Dazu ändert man in der „httpd.conf“ die Zeile:

Action  application/x-httpd-php /cgi-bin/php-cgi.exe

in

Action  application/x-httpd-php /cgi-bin/php-cgi-wrapper.exe

und star­tet den Apa­che Ser­ver neu. Der Quell­text des Wrap­pers sieht dabei so aus:

#include <process.h>

#define PHP_ORIG "php-cgi.exe"

int main(int argc, char **argv)
{
    if(argc>1) argv[1]=0;
    _execv(PHP_ORIG, argv);
}

Das ganze kann hier auch als fer­ti­ges Visual Stu­dio Pro­jekt oder gleich als aus­führ­bare Datei her­un­ter­ge­la­den werden.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://www.kb.cert.org/vuls/id/520827
http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/
http://www.heise.de/newsticker/meldung/PHP-patcht-schnell-aber-nicht-gruendlich-1567906.html

1 Kommentar

  1. Siehe dazu die­sen net­ten klei­nen Gag von Facebook:

    https://www.facebook.com/?-s

    Falls sie es irgend­wann abstel­len, Inhalt der URL ist hier: http://paste.invertika.org/907

    Antworten

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>