############################################
#!/usr/share/doc/defaced/1/cases/ptzhack.txt
############################################

Как был взломан ptzhack.net  [ by euronymous ]
---------------------------

Зеркало: http://taxidermia.void.ru/mirrors/2002/10/10/www.ptzhack.net/

Все  началось  с  того,  что  St4nny,  после общения в icq с одним из участников
ptzhack,  поделился  со  мной  тем,  как  тот  перед ним выделывался, говоря что
он  unhackable  sup3r_m3g4_mc,  etc.  Мы  пришли  к выводу, что это скорее всего
не так, после чего решили сделать этот сайт, чтобы опровергнуть его утверждения..

St4nny  просканировал хост xspider'ом и выслал мне отчет сканера. Там было много
чего  интересного,  но  хотелось  обойтись  малой кровью. Я увидел, что на сайте
существует  директория  upload, доступ к которой открыт для всех. Перейдя по url
http://ptzhack.net/upload   я   увидел  интерфейс  какого-то  сценария,  который
позволял  создавать  файлы  прямо  в  онлайне и сохранять их на сервере в той же
директории. Вероятно, администратор запретил выполнение .php файлов в директории
upload,  поэтому  все  мои  попытки  закачать  и выполнить командную оболочку не
увенчались успехом.

Мимо  проходил  Eraser  [  в icq ], и я решил спросить у него совета. Через пару
минут главная страница сайта была заменена новой.
 
Итак, форма сценария состояла из двух [ по-моему ] полей: 

- поле для, собственно, ввода кода страницы
- поле для указания имени файла, в который будет сохранено наше творение

Так  вот,  Eraser  попробовал  прописать  в  поле ввода имени файла что-то вроде
`../index.html'   и   у  него  получилось.  Как  позже  выяснилось,  в  сценарии
отсутствовала  фильтрация  символов  точки и обратной косой черты, что позволило
нам  закачать  файл  в  директорию,  которая  находилась  выше upload, то есть в
корневую  директорию  веб-сайта.  Поскольку  у  нас  не было возможности сделать
резервную  копию  файла  index.php, то вместо его перезаписи нашим новым файлом,
было   решено   сохранить  файл  с  именем  index.html,  который  в  большинстве
конфигураций apache читается первым.