Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Security] Pentesting - NULL Byte
Forum PHP.pl > Forum > PHP
pyro
Hello.

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 winksmiley.jpg

// edit

ehhh... forum mi wycina % 0 0 i \ 0

% 0 0 i \ 0 traktować jak bez spacji
l0ud
Null byte poisoning działa tylko, gdy magic_quotes są wyłączone. Niemniej i tak bezpieczeństwo tego skryptu jest do niczego...
pyro
Cytat(l0ud @ 25.04.2009, 17:08:39 ) *
Null byte poisoning działa tylko, gdy magic_quotes są wyłączone. Niemniej i tak bezpieczeństwo tego skryptu jest do niczego...


O tym wiedziałem... miałem inną możliwość sprawdzenia czy są włączone i wyglądało na to że nie są... możliwe, że w niektórych plikach zostało użyte addslashes() dla zmiennych globalnych, lub w niektórych poprostu wycięte... poza tym includem jeszcze udało mi się znaleźć mnóstwo XSS'ów, niestety poza tym nic bardziej konkretnego ;/

Btw. czy nie ma przypadkiem innych zatruwających bajtów? Bo wydaje mi się, że tak, ale nie mogę w tej chwili znaleźć papierku na google.
sowiq
http://m1chu.eu/2008/10/19/jak-zabezpieczy...le-include-rfi/ :
Cytat
[...]zerowy metaznak w postaci jednej z dwóch następujących form: lub %2500. Drugą z nich używa się w wypadku kiedy strona zabezpieczona jest przed pierwszą. Zamieniamy w nim po prostu % na jego szesnastkowy odpowiednik w kodzie ASCII, czyli %25.


[edit]
Mi też powycinało niektóre znaki.
pyro
Ja tu chyba czegoś nie rozumiem... jak podam %2500 to zostanie on potraktowany jako string "% 0 0" a nie jak bajt zerowy, więc jak on może coś tu zdziałać?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.