安全研究

安全漏洞
PHP-Nuke User/Admin Cookie SQL注入漏洞

发布日期:2003-05-30
更新日期:2003-06-05

受影响系统:
Francisco Burzi PHP-Nuke 6.5
Francisco Burzi PHP-Nuke 5.6
描述:
BUGTRAQ  ID: 7762

PHP-Nuke是一个广为流行的网站创建和管理工具,它可以使用很多数据库软件作为后端,比如MySQL、PostgreSQL、mSQL、Interbase、Sybase等。

PHP-Nuke使用Web_Links模块的情况下由于对Cookie值缺少充分过滤,远程攻击者可以利用这个漏洞进行SQL注入攻击,可以获得管理员和用户密码HASH值。

要获取用户的密码HASH,攻击者需要有一个合法帐户,攻击者可以访问www.victimsite.com/modules.php?name=Your_Account,发送如下构建的伪造Cookie:

uid为' or (uname='username_to_hack' and pass like 'a%') or uname = 'valid_username

uname为: username_to_hack
pass为:  valid_password

然后检查返回的结果页面,如果返回页面是登录页面,就意味着密码HASH类似为'a%',接着可以进行下个字符的测试。如果返回的是username_to_hack的详细页面内容,就需要尝试’LIKE 'B%'‘的测试。经过最大512的猜测,攻击者可以获得username_to_hack的HASH值,然后可建立username_to_hack所对应的伪造Cookie。

要获得admin的密码HASH,攻击者需要知道管理员的用户名,然后需要系统使用了web_link模块。攻击者不需要合法帐户,攻击者可以访问www.victimsite.com/modules.php?name=Web_Links&l_op=viewlink&cid=2  
,发送如下构建的伪造COOKIE:

aid为admin_to_hack' and pwd like 'a%

pwd为anything you want

攻击者检查返回页面结果,如果连接包含Edit连接,就表示密码的HASH类似为'a%',然后测试下个字符。经过多次猜测,可以获得密码的HASH值。

<*来源:bugsman (bugsman@libero.it
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=105449356813261&w=2
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* bugsman <bugsman@libero.it>提供如下第三方补丁:

编辑mainfile.php的'is_user()'函数,在之前

if ($uid != '' AND $pwd != '')


增加如下行:

$uid=addslashes($uid);

编辑/modules/Web_Links/index.php的NewLinksDate, MostPopular和viewlink函数,在如下行之前:

$admin=explode(":",$admin);

增加如下行代码:

$admin=addslashes($admin);

然后更改下面的代码:

$result3=sql_query("select radminlink,radminsuper from ".$prefix."_authors where aid ='$aid'", dbi);

为:

$result3=sql_query("select radminlink,radminsuper from ".$prefix."_authors where aid='$aid' and pwd='$admin[1]'", dbi);

厂商补丁:

Francisco Burzi
---------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.phpnuke.org

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