Xftp LIST响应远程栈溢出漏洞
发布日期:2010-06-01
更新日期:2010-06-02
受影响系统:NetSarang Xftp 3.0 Build 239
不受影响系统:NetSarang Xftp 3.0 Build 243
描述:
BUGTRAQ ID:
40470
Xftp是Windows平台上使用的SFTP、FTP文件传输程序。
XFTP在处理从恶意服务器响应中所检索的以下格式超长文件名时存在缓冲区溢出漏洞:
"-rw-rw-r-- 1 1176 1176 1060 Apr 23 23:17 [filename]\r\n\r\n"
当用户双击文件名进行下载时就会在Xftp.exe的0x0041B0B0处调用有漏洞函数。由于没有对[filename]执行正确地边界检查,因此在开始执行以下指令时:
0041B101 |. 56 PUSH ESI ; /<%s> ESI = [filename]
0041B102 |. 85C0 TEST EAX,EAX ; |
0041B104 |. 74 19 JE SHORT Xftp.0041B11F ; |
0041B106 |. 50 PUSH EAX ; |<%S> EAX = Folder name
0041B107 |. 8D8424 5401000>LEA EAX,DWORD PTR SS:[ESP+154] ; |
0041B10E |. 68 8CF24700 PUSH Xftp.0047F28C ; |format = "%s\%s"
0041B113 |. 50 PUSH EAX ; |s
0041B114 |. FF15 F89C4600 CALL DWORD PTR DS:[<&MSVCRT.sprintf>] ; \sprintf
sprintf()就可能使用大约230个字节覆盖0x0041B0B0函数的返回地址,在执行以下指令时允许控制EIP:
0041B219 |. 81C4 54020000 ADD ESP,254 ; ESP Alignment
0041B21F \. C2 0800 RETN 8 ; Pop the address we control to EIP
成功攻击可导致执行任意代码,失败的攻击也会导致拒绝服务。
<*来源:sinn3r (
x90.sinner@gmail.com)
链接:
http://www.corelan.be:8800/wp-content/forum-file-uploads/sinn3r/xftp3_advisory_final.txt
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://www.exploit-db.com/download/12834建议:
厂商补丁:
NetSarang
---------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.netsarang.com/浏览次数:2140
严重程度:0(网友投票)