Новые темы · Пользователи · Правила форума · Поиск · RSS
  • Страница 1 из 1
  • 1
Форум » Раздел для разработчиков » Программирование » Php » Пишем спам бот/авторассыльщик/брутфорс на Php + Curl
Пишем спам бот/авторассыльщик/брутфорс на Php + Curl
ShadowHackerДата: 31.10.2018, 22:42 | Сообщение №1
Подполковник
Группа: Главный Админ
Сообщений: 743
Награды: 0
Репутация: 3
Статус: Не в сети
Чтобы не быть голословным, буду писать скриптег под реальный сайт - _optsib.ru. Заходим на сайт, тыкаем "Доска объявлений" => "Добавить объявление". Смотрим в адресную строку браузера и видим там какую то бяку типа этойs=20080ч221521288b93b4a822fe4e235843df043d76b774. Что то похожее на ПХП СессИд. Берем на заметку и открываем HTML код странички, плясать будем именно от него.

Там находим код формы, и выписываем имена полей, обязательных для заполнения. У нас это: name, email, phone, razdel, zag, text. Их значения мы будем передавать на сервер заголовком POST (так как форма использует именно этот способ отправки). 

Так же мы видим в коде еще хидден поля - вот где на самом деле зарыта собака. У нас их три: ins, s, и sort. Не закрывая первого, открываем любой другой браузер переходим на ту же страничку добавления объявления и сравнивая ее ХТМЛ код с кодом первого браузера, убеждаемся что hidden поля ins и sort статичны и несут служебную информацию, а вот поле s изменило свое значение, это и есть защита от спама, оно же предупреждает нас что одним запросом на сервер нам не обойтись.

Итак создаем новый php-файл и начинаем кодить. Первым делом объявляем серверу что мы пришли, чтобы он выдал нам куки, по которым в последствии он будет сверять, не робот ли мы:


Код
$url="http://optsib.ru/do.phtml"; $ua = 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';

$ch=curl_init(); //инициализируем сеанс CURL

// ф-ция curl_setopt устанавливает параметры для запроса

curl_setopt($ch, CURLOPT_URL, $url);    //указываем URL для запроса
curl_setopt($ch, CURLOPT_HEADER, 1);  //просим CURL возвращать нам ответ [b]вместе[/b] с заголовками (обязательно)
curl_setopt($ch, CURLOPT_USERAGENT, $ua); //утверждаем что мы браузер чтоб не спалили
curl_setopt($ch, CURLOPT_TIMEOUT, 10); //без коментариев
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //говорим что ответ сервера нам нада возвращать, а не выводить прямо в браузер.

$answer=curl_exec($ch); //выполняем сам запрос, ответ сервера сохраняем в $answer.

Далее выводим ответ в браузер чтобы глянуть что там у нас пришло в заголовках. Там видим что в заголовке нам выдают кукисы PHPSESSID. Выдираем их и сохраняем себе на память  :


$sess_cookie=substr($answer, strpos($answer, "PHPSESSID=")+10, 32);

Дальше вспоминаем что у нас еще есть хидден поле s, его значение тоже достаем: 

Код
$s_hidden=substr($answer, strpos($answer, 'name="s" value=')+16, 46);

Прямо как настоящий браузер мы приняли сессию, выданную нам доской, теперь можно послать объявление на доску:

Код
$post="name=$company&email=$email&phone=$contacts&razdel=$cat&zag=$ed_name&text=$text_full&ins=1&sort=2&s=$s_hidden";
/*сформировали строку пост данных состоящую из пар [i]поле=>значение[/i] разделенных амперсандом (при необходимости строку надо url-кодировать)*/
curl_setopt($ch, CURLOPT_URL, "http://optsib.ru/insert.php"); //адрес на который шлем запрос (выдираем значение из action нашей формы)
curl_setopt($ch, CURLOPT_HEADER, 1); //дальше мы все уже видели
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie); //а вот тут внимательнее! не забываем показать серверу наши, полученные ранее кукисы
curl_setopt($ch, CURLOPT_POST, 1); //говорим что у нас есть POST данные для сервера
curl_setopt($ch, CURLOPT_REFERER, "http://optsib.ru/do.phtml?d=ins&sort=2&s=$s_hidden"); /*ставим заголовок [b]referer[/b] чтоб не спалится, вспоминаем про байду в адресной строке, теперь мы уже знаем что эта байда как раз значение нашего защитного поля */
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //указываем на наши POST данные

$answer=curl_exec($ch); //выполняем запрос на сервер

Печатаем ответ в браузер, видим "Ваше объявление успешно добавлено" и радуемся.
Форум » Раздел для разработчиков » Программирование » Php » Пишем спам бот/авторассыльщик/брутфорс на Php + Curl
  • Страница 1 из 1
  • 1
Поиск:

close