xNewsletter表单字段输入验证漏洞
发布日期:2002-04-14
更新日期:2002-04-23
受影响系统:
x-dev xNewsletter 1.0
描述:
BUGTRAQ ID:
4516
xNewsletter是一款允许WEB用户订阅新闻邮件的脚本程序,由PHP编写实现,可在Unix和Linux操作系统下运行,也可以运行在Microsoft Windows操作系统下。
xNewsletter没有过滤表单某些字段的输入内容,可以导致攻击者进行邮件炸弹攻击,或者以xNewsletter进程权限执行任意命令。
由于xNewsletter没有在收件人等字段过滤'%'字符,攻击者可以在多个邮件地址之间插入'%'字符并输入到收件人字段,当脚本代码执行的时候就可以导致对任意邮件地址进行邮件轰炸攻击。
攻击者也有可能插入任意数据到数据文件,导致xNewsletter提供的工具不能删除这些插入数据,导致一定程度的拒绝服务。必须本地访问系统手工删除数据文件。
<*来源:Florian Hobelsberger / BlueScreen (
genius28@gmx.de)
链接:
http://archives.neohapsis.com/archives/bugtraq/2002-04/0161.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Florian Hobelsberger / BlueScreen (
genius28@gmx.de)提供了如下测试方法:
1,在收件人字段输入如下地址:
%
testmail@localhost.de%
testmail@localhost.de%
testmail@localhost.de
这里的EMAIL地址可以选择任意想攻击的地址,可以产生邮件炸弹攻击。
2,在收件人字段输入如下代码:
<?php inlcude("text.txt");?>
testmail@localhost.de
可以产生不可删除的数据条目,必须手工访问系统删除数据文件。
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 在91行和92行之间插入如下代码:
/*corrected by Markus (Firehack) K. visit www.it-checkpoint.net*/
# wurden ungültige Zeichen verwendet (% usw.)?
$unz = array("<", ">", "%", "(", ")", "?");
foreach ($unz as $ung){
if(strstr($email, $ung)){ echo "Dieses Zeichen ".$ung." ist nicht
erlaubt!";exit;}
}
厂商补丁:
x-dev
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.x-gfx.de/xdev_frame.php
浏览次数:3593
严重程度:0(网友投票)