微擎二次注入漏洞涉及文件web/source/mc/fangroup.ctrl.php

微擎二次注入漏洞,sql语句查询前未作处理为sql注入漏洞的根源,同时多个sql语句拼接执行,使攻击者可以注入更长的代码。最后查询的变量用户可以控制,所以最终该漏洞可以实施攻击。

涉及文件

web/source/mc/fangroup.ctrl.php

修复方案

打开文件:

web/source/mc/fangroup.ctrl.php

搜索查找如下代码:

tablename('mc_mapping_fans')

找到完整代码:

$sql .= 'UPDATE ' . tablename('mc_mapping_fans') . " SET `groupid`='" . $tagids . "' WHERE `fanid`={$fans['fanid']};";
pdo_query($sql);

将上段完整代码替换成以下代码:

$sql = 'UPDATE ' . tablename('mc_mapping_fans') . " SET `groupid`= :tagids WHERE `fanid`=:fanid;";
pdo_query($sql, array(":tagids" => $tagids, ":fanid" => $fans['fanid']) );

保存,提交检测验证。