Niezabezpieczona funkcja include() + magic quotes ON

xorn

Użytkownik
Dołączył
Październik 13, 2007
Posty
22
Witam wszystkich,
ostatnio czytałem ciekawy artykuł w jaki sposób można ominąć konieczność dodawania znaku NULL na koniec zapytania w przypadku niezabezpieczonej funkcji php include() czy pochodnej jak require, przykładowo kiedy wygląda ona tak:
PHP:
<?php
   include('page_'.$_GET['name'].'.php');
?>
a chcemy się dostać przykładowo do pliku /etc/passwd no ale niestety są włączone magic quotes. W normalnym wypadku postąpilibyśmy następująco: ?name=/../../../../../../../etc/passwd%00 ale przy magic quotes jest to niestety niemożliwe.
Cały trik polega na tym aby do parametru przekazać za długi łańcuch tak aby php ucięło "końcówkę" czyli w naszym przypadku to ".php" dzięki czemu będziemy mogli zainkludować plik z dowolnym rozszerzeniem. W większości unixowych systemów stała MAX_PATH wynosi 4096 znaków.

Zapaliła mi się więc czerwona lampka bo przypomniałem sobie o stronce, na której spotkałem się dokładnie z takim przypadkiem - wywołanie funkcji include podobne jak w powyższym przykładzie:
- Sprawdziłem MAX_PATH - 4096 znaków.
- Przekazałem łańcuch dłuższy niż 4096 znaków - plik nie został zaincludowany.
- Przekazałem łańcuch równy 4092 znaków (zostawiłem 4 znaki na to .php) i udało mi się zaincludować dowolny plik php nie podając jego rozszerzenia.
- Przekazałem łańcuch równy 4096 znaków tak aby dopisywane przez skrypt strony rozszerzenie php się ucięło i dodając to rozszerzenie .php samemu aby sprawdzić czy strona również się załaduje jak w poprzednim punkcie - niestety to się nie udało ;/ php wyrzuca błąd file not found.

Także teraz mam pytanie dla pro haksiorów na tym forum - czym może być to spowodowane? Na pewno wszystko robię dobrze (liczę poprawnie znaczki itp ;p)

Jeżeli kogoś to zainteresuje to artykuł znajduje się tutaj http://raz0r.name/articles/null-byte-alternative/

ewentualnie http://translate.google.pl/translat...://raz0r.name/articles/null-byte-alternative/ B)

z góry dzięki za zainteresowanie i odpowiedź :>
 

Dark Smark

Były Moderator
Dołączył
Kwiecień 29, 2006
Posty
1953
dodam tylko że najbezpieczniej jest używać instrukcji wyboru switch z góry narzucając możliwe podstrony lub błąd.
 
Do góry Bottom