Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #94, ОКТЯБРЬ 2006 г.

Тотальный дестрой TV

Longer

Хакер, номер #094, стр. 094-078-2


Итак, я отправил администратору PM и стал ждать. Через час получил письмо с куками (name=pepper; password=yytIwCtw3EibY). Исправив их с помощью редактора куков в Opera, я стал админом форума. Первым делом я зашел в админку форума. Изучив ее, увидел название движка - «Gold 3». Затем залез на securitylab.ru и ввел в строке поиска «Gold forum». Посмотрев на результат запроса, я узнал, что движок их форума – YaBB. Скачав его исходники с другого сайта, я еще раз убедился в этом. Последняя дыра в форуме была датирована 2004 годом. Я начал судорожно рыться по админке в поисках загрузчика файлов или еще чего-нибудь полезного, но так и не нашел :(. Тогда принял решение пролистать PM в поисках админки сайта или паролей к чему либо – также обломался. И вот она – первая удача! Я зашел в профиль админа и посмотрел на поле с паролем. Оно было покрыто звездочками, но что-то мне подсказало обратить внимание на исходник паги. Я быстро нашел поле с паролем, и там был написан пассворд в чистом виде :) Админ имел право просматривать и изменять чужие профили, поэтому я быстренько вытянул связку логин:пароль со всех админских акков. На этом я остановился и ушел спать. Утром меня ждала следующая жертва – сайт канала «Студия 41» (studio-41.com).

Студия-41

Зайдя на сайт, я увидел ссылки на свежие новости, навигацию по разделам и т.п. Осмотрев внешний вид и оформление сайта, начал бродить по ресурсу в поисках дыр. Высматривал до тех пор, пока не обратил внимание на баннер, который раньше почему-то игнорировал. Он меня заинтересовал ссылкой http://studio-41.com/ads/adclick.php?n=a4f592af. Как видно из линка, на портале существует скрипт adclick.php в папке ads. Перейдя по линку http://studio-41.com/ads/, я получил приглашение сценария phpAdsNew 2.0.7 ввести логин и пароль. Посмотрев в багтраке упоминания о данном движке, я узрел новость, посвященную XSS. Судя по описанию, нужно было иметь юзерский доступ к скрипту, после чего становилось реальным стащить куки администратора. У меня же не было никакого доступа, поэтому я отложил этот скрипт до лучших времен.

В отчаянии было решено обратиться к гуглу и изнасиловать его запросами вида MySQL site:studio-41.com. Введя по очереди несколько подобных запросов, я получил кое-что интересное: на сохраненной в хэше странице светилась ошибка выполнения запроса MySQL. Перейдя по линку, я увидел, что дыра уже залатана. Но, посмотрев на хэшевую страницу, заметил ссылку на скрипт, вызывающий ошибку: /web/studio2/site/www/include/db.php (по-видимому, в нем содержались функции работы с БД). Я решил зайти в папку http://studio-41.com/include/ и, как ни странно, увидел ее содержимое (на момент сдачи статьи в печать этот каталог был действительно открыт! — Прим. ред.). Там я нашел файлик db.txt. Сначала я подумал, что это исходник db.php, но, открыв его, я увидел структуру базы, датированную 2003 годом. Покликав по очереди по всем скриптам, получил ошибку 500 (наверное, не было прав на их выполнение). Надежда на успех таяла, пока я не дошел до сценария viewDoc.php. После клика по нему появилась ошибка MySQL. Это был успех, поскольку мне оставалось узнать параметр и попробовать выполнить SQL-инжекцию. И тут мне вдруг вспомнилось, что где-то на сайте я уже видел файл с таким именем. Быстро найдя его, я попробовал выполнить задуманное, но не тут-то было! Ошибки SQL уже не возникало, версия на сайте была запатчена админами (видимо, я не первый хакер, покусившийся на ресурс). А что касается файла /include/viewDoc.php, то он реально был бажным. Кстати, забыл сказать, что параметр сценария назывался docid. Поэкспериментировав, я понял, что параметр этот не фильтруется, и команда UNION также не работает. Но то, что UNION не работает — не беда, поскольку существует метод посимвольного перебора. Сначала я решил проверить, есть ли у меня доступ к mysql.user. Но после запроса http://studio-41.com/include/viewDoc.php?docid=1+AND+ascii(substring((SELECT+password+FROM+mysql.user+LIMIT+1),1,1))>0 выяснилось, что доступ все же отсутствовал.

Назад на стр. 094-078-1  Содержание  Вперед на стр. 094-078-3