Х-КОНКУРС: криворукие падонки NSD (nsd@nsd.ru) Xakep, номер #066, стр. 066-077-1 Прошло тридцать дней с момента запуска майского конкурса, за которые в историю Х успел войти еще один человек. Итак, нашим новым грабителем… ой, в смысле победителем, стал ??????. Как раз его мы хотим не только поздравить, но и вручить зачипатый приз – ???????????. Заруливай в редакцию и забирай его - он ждет тебя с нетерпением! Ну а теперь пора перейти к следующему конкурсу. Ребята с сайта www.padonak.ru, лишившись своего капитала, поняли, что бизнес с обменным пунктом WebMoney им не светит, поэтому они решили попробовать себя в другом деле – в программировании. Они написали жалкое подобие форума и установили свой «программный продукт» :) у себя на сайте. Но из-за того, что руки у них растут сам знаешь откуда, их самопальная софтинка не осталась обделенной багами. Что тебе нужно сделать в этот раз? 1) Сначала находишь в вышеописанном самодельном форуме баг, который даст тебе шелл-доступ. 2) Далее находишь файл конфигурации скриптов, работающих с MySQL. 3) Из найденного файла выдираешь логин с паролем от базы. 4) Ставишь на сервер какой-нить MySQL-клиент (например, phpMyAdmin) и сливаешь из базы секретную таблицу. 5) Если ты первый пришлешь эти данные из базы, станешь победителем конкурса. Как пройти майский конкурс Исследуя ссылки на www.padonak.ru, натыкаемся на админский интерфейс управления обменным пунктом, доступ в который ограничен веб-авторизацией. Выбираем селектором логин «admin», а в поле «пароль» вписываем одинарную кавычку ‘ и жмем на кнопку «затусить». Результатом нажатия этого батона будет появление надписи «sql error». Это говорит о том, что логин с паролем берутся из sql-базы данных, поэтому у нас есть шанс реализовать атаку sql-injection. Корректность пароля проверяется таким sql-запросом: SELECT * FROM users WHERE user='$user' and pass='$pass' (изврат, но все-таки таким образом реализована авторизация на куче сайтов!). Если этот запрос вернет какой-нибудь результат, значит пароль, введенный юзером, будет соответствовать паролю, который хранится в базе. Но что будет, если в поле «пароль» написать не «my_good_password», а что-нибудь типа «xakep’ or ‘a’=’a»? Тогда запрос будет выглядеть следующим образом: SELECT * FROM users WHERE user='admin' and pass='xakep’ or ‘a’=’a’. Это приведет к тому, что ты залогинишься под админом, не зная пароля! Первый этап пройден. Исследуя сервер дальше, попадаем на скрипт admin.php, которому через переменную inc передается имя include-файла. Но тут не все так просто – инклудить в нашем случае можно только локальные файлы, поэтому шелл-акцес так просто не получишь. На помощь к нам приходит другой скрипт из панели управления – write.php, который предназначен для записи напоминания админу, которое заносится в файл napom.txt. Сам понимаешь, что скриптом можно без всяких помех записать «напоминание» такого содержания: «<? system($cmd);?>». А если мы заинклудим дырявым скриптом admin.php файл napom.txt, который содержит вышеупомянутую строчку, то получим веб-шелл. Исследуя скрипты обменника, находим в них WMID и пароль к кошелькам. Также сливаем с сервера *.kwm и *.pwm-файлы, которые лежат в той же дире, что и скрипты обменника. Остается только поломать пароль к почтовому ящику, который привязан к падонкафскому WMID. А так как один из паролей совпал с паролем от мыльника, делать это даже не пришлось :). Вся необходимая инфа у нас теперь есть. Логинимся под WM-идентификатором обменника, вводим код активации, который придет на мыло, и переводим бабки к себе! CD На нашем диске ты найдешь видеоролик, посвященный прохождению конкурса. |