6/4/2010
Brzmi groźnie, ale na szczęście błąd dotyczy tylko PHP 6.0 dev, a kod upublicznionego exploita działa na Windows. Mimo wszystko, błąd zdecydowanie warty odnotowania — szczegóły poniżej:
PHP 0day exploit
Błąd typu buffer overflow znajduje się w funkcji str_transliterate(). W poniższym przykładzie za jego pomocą exploit wywołuje WinExec i uruchamia niegroźny program: kalkulator.
Aby exploit działał, unicode.semantic musi być włączony. Kod exploita, czyli skrypt php znajdziecie tutaj, a stąd możecie pobrać podatną na atak wersję PHP, gotową do instalacji.
Fuzzer PHP
Błąd odkrył lilxam, który wraz z exploitem na funkcję str_transliterate() udostępnili także fuzzera PHP będącego pomocnym narzędziem do znajdowania podobnych błędów.
P.S. Gdyby ktoś był spragniony błedów w PHP to warto zacytować odnalezioną niedawno słabość w algorytmie generowania SSID. Przykładowy scenariusz ataku tutaj.
Fajnie, że informujecie, ale mogliście dać trochę mniej “ofensywny” tytuł, bo ten jest lekko niewspółmierny do poziomu znaleziska.
@TomaszKowalczyk przecież w pierwszym zdaniu jak byk stoi “Brzmi groźnie, ale na szczęście błąd dotyczy tylko PHP 6.0 dev”
Drobna uwaga. Nie chlopaki z Nullbyte.org.il a lilxam ( http://lilxam.tuxfamily.org/blog/?p=302&lang=en ) odkryl blad i udostepnil fuzzer.
@Iwanienko: W moim komentarzu jak byk stoi, że mam na myśli tytuł. Ktoś kto przeczyta całość dowie się wszystkiego, więc nie krytykuję samego artykułu, ale ktoś kto zatrzyma się na tytule będzie miał już nieco inny obraz sytuacji. Zresztą, bez flame’a – ważne, że zostanie załatane i po sprawie. ;]