安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障