####################################################################### Luigi Auriemma Applicazione: NULLhttpd http://nullhttpd.sourceforge.net/httpd/ Versioni: <= 0.5.1 Piattaforme: Tutte quelle supportate (Win & Unix) Bug: Cross site scripting Date: 24 Sep 2003 Author: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== "Null httpd e' un web server piccolo, semplice e multithreaded per Linux e Windows." Comunque, come detto dall'autore, questo server non e' stato sviluppato per girare su servers di produzione o per la qualita' e la sicurezza. ####################################################################### ====== 2) Bug ====== Questa non e' la prima volta che un bug XSS (cross site scripting) viene trovato in NULLhttpd, infatti ne venne gia' corretto un anno fa' quando venne rilasciata la versione 0.5.1 ma sfortunatamente alcuni "problemi" nel codice fanno si che tale bug possa essere ugualmente replicato (anche se gia' esisteva nelle versioni precedenti). Il problema infatti e' che un richiesta HTTP troppo lunga sovrascrive alcune stringhe dati in memoria (comunque non avendo debuggato il programma non ho molti dettagli a riguardo) e l'effetto e' lo scavalcamento dei controlli per evitare l'XSS ed una pagina di errore 400 (Bad Request) contenente il codice XSS. Esempio: http://server/ [1799 bytes] [243 bytes] | | | qui e' dove inizia il codice XSS che puo' | essere di massimo 243 bytes caratteri necessari per bypassare i controlli XSS Risposta da NULLhttpd: ---- HTTP/1.0 200 OK Cache-Control: no-store Connection: Close Content-Length: 472 Date: Tue, 23 Sep 2003 11:39:30 GMT Expires: Tue, 23 Sep 2003 11:39:30 GMT Last-Modified: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaano-cache Pragma: no-cache Server: Null httpd 0.5.1 Content-Type: text/html xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx400 Bad Request

400 Bad Request

Can't Parse Request.
Null httpd 0.5.1
---- ####################################################################### =========== 3) The Code =========== Sfruttare il problema e' molto semplice, comunque ho rilasciato un file html con un link (che usa 127.0.0.1 come server, quindi da modificare) che puo' essere utile come esempio: http://aluigi.org/poc/nullhttpd051-xss.htm ####################################################################### ====== 4) Fix ====== No fix L'autore e' stato contattato oltre 10 giorni fa' ma non ho ancora ricevuto una risposta sino ad ora. #######################################################################