发现一个整合UC的重大漏洞,导致任何密码都可以登录
刚入手,按论坛的方法整合了UC 无意中发现登录存在很大的问题输入用户名 和随便的密码 第一次登录出提示登录失败,第二次用上一次登录失败的密码在登录 就可登录成功。。。并且数据库密码也会修改成那个随便输入的密码。。。超级大漏洞啊
调试后发现 问题出在 uc.inc.php 上
行40
[*]
[*]if($user['password'] == preg_match('/^\w{32}$/', $password) ? md5($password) : md5(md5($password))) { /* 更新UC密码 */
[*]
[*]修改成
[*]if($user['password'] == ( preg_match('/^\w{32}$/', $password) ? md5($password) : md5(md5($password)) )) { /* 更新UC密码 */
[*]复制代码解决了!!!
希望官方重视!!
楼主强啊!支持了!马上改下!
留个记号
http://bbs.destoon.com/static/image/smiley/default/victory.gif
楼主是在dt还是uchome或者discuz上登录啊?
照楼主的说法,岂不是任何一个访问者只要连输两次密码就可随便登录了?不至于吧?
我在dt中尝试就不会啊。
的确如此!!!!楼主高手啊
http://bbs.destoon.com/static/image/smiley/default/lol.gif
我是在dt中登陆的!
按语法
if($user['password'] == preg_match('/^\w{32}$/', $password) ? md5($password) : md5(md5($password))) { /* 更新UC密码 */
这句话在任何情况下都是成立的。
嗯. 少了括号会直接通过.
楼主强人,谢谢楼主分享这个错误,已经按你的方法修改了我的程序.再次感谢
我的还没整合UC,这么大的漏洞,真的假的
怎么不见官方发布安全补丁。
http://bbs.destoon.com/static/image/smiley/default/lol.gif
官方应该发补丁了吧!!!
页:
[1]