Discuz5安全漏洞——算不算呢?

topicadmin.php文件中的下面代码中,一看就是$accessadd1、$accessadd2这两个变量没有初始化。有可能引发SQL注射攻击。但实际我也没有时间和精力去测试。毕竟如果可以利用的话,要有一定权限哦。有兴趣的朋友可以自己看看。

if($adminid == 3) {
    if(
$accessmasks) {
    
$accessadd1 ', a.allowview, a.allowpost, a.allowreply, a.allowgetattach, a.allowpostattach';
    
$accessadd2 "LEFT JOIN {$tablepre}access a ON a.uid='$discuz_uid' AND a.fid='$moveto'";
    }
    
$query $db->query("SELECT ff.postperm, m.uid AS istargetmod $accessadd1
    FROM {$tablepre}forumfields ff
    $accessadd2
    LEFT JOIN {$tablepre}moderators m ON m.fid='$moveto' AND m.uid='$discuz_uid'
    WHERE ff.fid='$moveto'"
);
    
$priv $db->fetch_array($query);
    if(((
$priv['postperm'] && !in_array($groupidexplode("\t"$priv['postperm']))) || ($accessmasks && ($priv['allowview'] || $priv['allowreply'] || $priv['allowgetattach'] || $priv['allowpostattach']) && !$priv['allowpost'])) && !$priv['istargetmod']) {
    
showmessage('admin_copy_nopermission');
    }
}

« 上一篇 | 下一篇 »

访客评论

在include/comm.inc.php中260行左右
有初始化的,以上;
Post by 小水水 on 2006-12-24, 12:42 AM #1
对哦。没注意。哈哈。不好意思浪费各位表情。