Контакты

Для связи с нами можно использовать:
irc://irc.chatnet.ru:#gfs
icq://546460
email://cobalt[@]gfs-team.ru

Все материалы предоставлены только с ознакомительной целью
ГлавнаяСтатьиХакингВзлом форумов и вебмэйл
© Cobalt 19.02.2006 статья не оптимизирована


 Бывают такие ситуации, когда вы не можете найти на сайте никаких видимых багов,
но не стоит расстраиваться! На помощь приходит старый добрый брут. Долго, но надежно.
 Что же мы будем брутить? Статей на тему брута сервисов типа телнет, поп3 и фтп
написано и так уже довольно много. Мы же попробуем сбрутить HTTP. Вы можете
удивленно воскликнуть: что же там брутить? Все просто как дважды два: мы попробуем
подобрать пароль ко входу на форум или к веб интерфейсу электронной почты.
 Собственно говоря нам совершенно без разници что конкретно брутить, главное чтобы
там была форма для входа. Это может быть админ панель сайта, чат, гостевая или
что-либо подобное.
                
 Сразу предупреждаю. В этой статье вы не встретите готового кода для брутера форм.
Статья предназначена в первую очередь показать как это можно сделать.

 Во-первых, давайте определимся с конкретной целью. Предлагаю в качестве примера
использовать всем известный форум phpBB2. Давайте откроем страницу входа и посмотрим
ее исходники. Если выкинуть все лишние, то форма для входа выглядит так:

 <form action="login.php" method="post" target="_top">
 <input type="text" name="username" size="25" maxlength="40" value="" />
 <input type="password" name="password" size="25" maxlength="32" />
  Автоматически входить при каждом посещении:
 <input type="checkbox" name="autologin" />
 <input type="hidden" name="redirect" value="" />
 <input type="submit" name="login"  value="Вход" />
 </form>

Соответственно наша задача сводиться к тому, чтобы методом POST передать сценарию
login.php переменную username содержащую имя, переменную password содержащую пароль
и переменную login равную "Вход".

Код на языке Perl (для удобства строки пронумерованы) для этого будет выглядить так:

1. use Socket;
2. $adr="server.ru";
3. $port="80";
4. $page="login.php";
5. $data="username=user&password=my_pass&login=Вход";
6. $len=41;
7. $str1="POST /$page HTTP/1.1\nReferer: http://$adr\nContent-Type:
          application/x-www-form-urlencoded\nHost: $adr\nContent-Length:
          $len\n\n$data\n\n";

8. socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'))
9.      or die "Couldn`t create socket : $!\n";
10.  $iaddr=inet_aton($adr);
11. $paddr=sockaddr_in($port,$iaddr);
12. connect(SOCK, $paddr)
13.      or die "Couldn`t connect to $adr:$port : $!\n";
14. send (SOCK, $str1, 0);
15. while($data=){
16.  print $data;
17. }
18. close(SOCK);


Этот сценарий подключается к серверу, передает указанные нами данные и выводит страницу
ответа сервера. Давайте разберем его более подробно:
В первой строке мы задаем интерпритатору директиву использовать модуль из стандартной
библиотеки Socket, он нужен для работы с TCP/IP сокетами. Во второй строке
создается переменная $adr содержащая имя сервера. В третей строке - $port, порт на
котором крутиться удаленный веб сервер. В четвертой строке задан сценарий которому
мы будем передавать данные. В строке №5 - сами передаваемые данные. Обратите
внимание: они записаны как для метода GET. В строке №6 - размер данных.
В следущей строке задается сам запрос к серверу. Я не буду тут подробно описывать
по какому принцыпу сформирован этот запрос. Желающие же докопаться до сути могут
прочитать соответствующий rfc (rfc2616) на сайте rfc.net. Скажу только что строка 7
НЕ должна ни вкоем случае содержать переносов на следущую строку (кроме тех которые обозначены
символом "\n"). Т.е. писать следует именно в одну строку.

В строках с 8 по 13-ю устанавливается соединение с сервером. В строке 14 - серверу
посылается строка запроса. 15-17 - вывод полученых данных, и наконец (18) -
разрыв соединения.

 Давайте немного поэксперементируем с этим сценарием. Зарегистрируйтес на каком-либо
форуме, введите в сценарий сначала "верные" а потом "неверные" логин и пароль.
Посмотрите что вам выдал скрипт и сравните два результата. Значит нам осталось
занести выводимые данные в одну переменную, проверить ее на наличие данных содержащихся
в правильном ответе (либо наоборот в неправильном) и выдать результат!

 Добавить сюда перебор паролей и отправку правильного результата на определенный
адрес я думаю труда не составит. Так что дерзайте, но помните: за брут по головке
не погладят =).

ЗЫ: Сценарий неоднократно протестирован на различных формах и результаты гарантированы.




© Cobalt 19.02.2006 статья не оптимизирована

e-Commerce Partners Network
Morder написал:

Cobalt, харош, пасибо :). Мне нравится смысл твоей статьи, что все автоматезированно и можно повесить это на каком-нибудь шелле и идти спать :).

fraIzer написал:

Оригенальненько...

HemCobboymn написал:

люди то все разные...

tropotop написал:

Сколько стоит мыло сломать, так чтобы хозяин незнал об этом просто нужно просмотреть почту

Ник:

Текст:
P Br B I Qute



Код: обновить
Последние комментарии
26.07.2017 15:18:53 Flossiefal написал:
Принципиально новое обновление "XRumer 16.0 + XEvil": решение бесплатно и быстро...
Релиз
26.07.2017 14:40:32 Flossiefal написал:
Революционное обновление "XRumer 16.0 + XEvil": распознавание бесплатно и быстро captchas...
Новый релиз
26.07.2017 12:58:08 Flossiefal написал:
Революционное обновление "XRumer 16.0 + XEvil": взлом бесплатно и быстро captcha...
Новая статья
Реклама

Тут должна была быть ваша реклама, но мы потеряли глиняную табличку с ее текстом. SapeId: 665044

Rambler's Top100