Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #81, СЕНТЯБРЬ 2005 г.

WEB-наводнение

Александр Любимов aka Sashiks

Хакер, номер #081, стр. 081-070-3


Так, скорее всего, и было (причем я заметил, что хэш генерировался каждый раз новый и не от чего не зависел). То есть при генерировании web-формы для ответа на пост в нее вставляется сгенеренный хэш, и как только мы жмем кнопку Post, то скрипт, которому передаются параметры, сравнивает значение, переданное ему в $token, с тем, что было вставлено в форму. Если же значения не совпадают, то ответ просто-напросто не записывается. Немного почесав репу, я понял, что для создания флудера под форум, этих данных будет мало. Мне нужно было знать все значения (в том числе и в скрытых полях), которые передавались из формы. Для этого мне нужно было сохранить форму на себе на винт и в html-коде исправить:

<form onSubmit="submitonce(this)" action="/addReply.html" method="POST" enctype="multipart/form-data">

на

<form onSubmit="submitonce(this)" action="http://www.linuxsucks.org/addReply.html" method="GET" enctype="multipart/form-data">

То есть в action я прописал полный путь к скрипту, а метод передачи заменил на GET. Теперь, нажав на Post, страница начнет передавать на сервер данные, но теперь методом GET, поэтому в адресной строке браузера я смогу увидеть все параметры. Вот как выглядела эта строка:

www.linuxsucks.org/addReply.html?xtitle=название_нашего ответа&postid=это_номер топика&topictitle=название_самого_топика&xmsg=наш_ответ&Post=Post&token=это_md5_хэш&mode=Submit.

Параметры post и mode не менялись в зависимости от топика. Теперь, получив все необходимые сведения, я уже мог начинать писать флудер.

[перловые забавы]

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

1)Аутентификация на сайте (логин+пароль)

2)Получение Cookies

3)Получение страницы с формой (парсинг параметров)

4)Составление запроса (плюс Cookies)

5)Отправка запроса

Сейчас мы разберем каждый пункт. Первое, что нам нужно сделать - пройти авторизацию с помощью пары «логин:пароль». Если этого не сделать, то при запросе страницы с формой нас все равно перебросит на пагу login.html. Благо авторизация выполнена крайне просто в виде двух полей, поэтому, чтобы нас впустили, достаточно проделать следующие:

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