Dedecms任意用户登录SSV-97087¶
影响版本¶
dedecmsV5.7 SP2
漏洞成因¶
dedecms 的会员模块的身份认证使用的是客户端 session,在 Cookie 中写入用户 ID 并且附上 ID__ckMd5,用做签名。主页存在逻辑漏洞,导致可以返回指定 uid 的 ID 的 Md5 散列值。原理上可以伪造任意用户登录。
复现¶
现在我们的思路就是 先从 member/index.php
中获取伪造的 DedeUserID 和它对于的 md5 使用它登录 访问 member/index.php?uid=0000001 并抓包(注意 cookie 中 last_vid 值应该为空)。 可以看到已经获取到了,拿去当做DeDeUserID 可以看到,登陆了 admin 用户。
修复意见¶
M_ID 被 intval 后还要判断是否与未 intval 之前相同。