Бомба в мыле

CuTTer (icutter@mail.ru)

Xakep, номер #019, стр. 019-042-2


print "Письмо отправлено!"; # Вывод сообщения браузеру

Если ты запустишь прогу из своего браузера, то появится сообщения, что письмо отправлено, и оно (письмо) будет лежать в твоем ящике. Заметь, программа должна быть записана в Unix формате. Если ты поставил MustDie, то воспользуйся Far'ом или еще чем-нибудь и не забудь поставить права доступа 755 (команда chmod 755). Отныне ты можешь отправлять почту с помощью маленького скрипта. Ты можешь ее использовать в разных целях, например, для своего сайта. Почту можно отправлять и с помощью PHP3, ASP (Active Server Pages). Если ты извращенец (как я), то напиши прогу, которая сама соединится с SMTP серваком и сделает запрос на отправку письма. В принципе это не сложно, просто скачай готовую программу или купи книгу CGI/Perl (более подробный материал об основах работы и обучении Perl`у читай в следующем номере Х - прим. ред.).

Бомбить

Теперь нам нужно написать прогу, которая бомбила бы по-настоящему. И чтобы слала хоть 1000 сообщений, но этого мало, нам ведь нужно загрузить ящик. Но тут появляется проблема: на многих бесплатных хостингах стоит специальное ограничение на время работы CGI программы (называется это timeout), поэтому надо как-то выкручиваться. Мы пойдем простым путем, чтобы меньше было геморроя. Будем отсылать 50 сообщений и заново загружать программу, а ей говорить, что, типа, мы уже 50 штук отправили, давай шли дальше. И так до бесконечности, пока тебе не надоест. Конечно, можно запускать как background программу в shell'е, но не у всех есть к нему доступ. Правда, Х как-то писал, как открывать shell,- если у тебя есть такая возможность, то программу можно будет совсем легко переделать. Допустим, она должна слать сообщения разного содержания:

Здравствуй, ты читаешь сообщения №1. Можешь читать следующее. :-))

Здравствуй, ты читаешь сообщения №n. Можешь читать следующее. :-))

Придумай что-нибудь свое, но чтобы в письме участвовал номер сообщения, а то не будет и смысла писать свой mailbomber. Допустим, ты уже выбрал свою жертву, это e-mail mazafucka@mail.ru. Программу обзовем bomb.cgi, вызывать будем так: http://www.mailhack.ru/cgi-bin/bomb.cgi. Номер последнего отправленного письма будем записывать в отдельный файл, так как вдруг тебе приспичит остановить бомбежку, а потом захочется продолжить. Если программу вызвать с параметром new (bomb.cgi?new), то номера писем обнулятся и отсчет начнется с единицы. Теперь разберем код нашей программы:

#!/usr/local/bin/perl

$mailprog = '/usr/sbin/sendmail'; # Расположение программы sendmail на сервере

$mail = 'mazafucka@mail.ru'; # e-mail жертвы

$from = 'whoisit@hej.sux'; # От кого будет письмо

$file='bomb.txt'; # Файл, в который пишем кол-во отправленных писем

$col=50; # Количество отправляемых писем за один раз

if (($ENV{QUERY_STRING} eq "new") && (-e $file)){unlink ($file);}

# Обнуляем данные, если надо

open (DATA, $file); # Открываем файл, в котором находится кол-во отпр. писем

$num=; # Считываем информацию из файла

close (DATA); # Закрываем файл

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