漏洞原因

弱类型问题

类型转换是无法避免的问题。例如需要将GET或者是POST的参数转换为int类型,或者是两个变量不匹配的时候,PHP会自动地进行变量转换。但是PHP是一个弱类型的语言,导致在进行类型转换的时候会存在很多意想不到的问题。

如果在用于密码比对,身份验证中没有对类型进行强处理,往往会导致对比成功,身份伪造等等。

常见的弱类型对比

产生弱类型的函数

漏洞分析

使用安全问题重置密码存在弱类型

if(empty($safequestion)) $safequestion = '';
    if(empty($safeanswer)) $safeanswer = '';
    if($row['safequestion'] == $safequestion && $row['safeanswer'] == $safeanswer)
    {
        sn($mid, $row['userid'], $row['email'], 'N');
        exit();
    }

如果该用户没有设置过任何安全问题。那么,

SN函数:

漏洞验证

利用前提条件

修复建议

漏洞原文

【漏洞分析】 织梦前台任意用户密码修改锦行 - 信息安全

源链接

Hacking more

...