kth007 发表于 2009-11-28 15:21:15

发现一个整合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密码 */
[*]复制代码解决了!!!
希望官方重视!!

autolst 发表于 2009-11-28 15:33:21


楼主强啊!支持了!马上改下!

luqiao 发表于 2009-11-28 16:00:37


留个记号
http://bbs.destoon.com/static/image/smiley/default/victory.gif

spenser 发表于 2009-11-28 16:54:09


楼主是在dt还是uchome或者discuz上登录啊?

照楼主的说法,岂不是任何一个访问者只要连输两次密码就可随便登录了?不至于吧?

我在dt中尝试就不会啊。

ceshi921 发表于 2009-11-28 17:16:59


的确如此!!!!楼主高手啊
http://bbs.destoon.com/static/image/smiley/default/lol.gif

kth007 发表于 2009-11-29 10:56:27


我是在dt中登陆的!
按语法
if($user['password'] == preg_match('/^\w{32}$/', $password) ? md5($password) : md5(md5($password))) { /* 更新UC密码 */

这句话在任何情况下都是成立的。

kjmdiba 发表于 2009-11-29 11:10:08


嗯. 少了括号会直接通过.

zhangjinwei 发表于 2009-11-29 11:16:10


楼主强人,谢谢楼主分享这个错误,已经按你的方法修改了我的程序.再次感谢

清洁巴巴 发表于 2009-11-29 17:20:14


我的还没整合UC,这么大的漏洞,真的假的

怎么不见官方发布安全补丁。



http://bbs.destoon.com/static/image/smiley/default/lol.gif

skys 发表于 2009-12-1 11:15:01


官方应该发补丁了吧!!!
页: [1]
查看完整版本: 发现一个整合UC的重大漏洞,导致任何密码都可以登录