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(网友投票)