漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-035825
漏洞标题:Winsock Ftp Daemon内存溢出漏洞
相关厂商:Texas Imperial Software
漏洞作者: 杀破狼
提交时间:2013-09-02 15:09
修复时间:2013-12-01 15:10
公开时间:2013-12-01 15:10
漏洞类型:拒绝服务
危害等级:中
自评Rank:8
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-09-02: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-12-01: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
当输入的命令行超过172个字符(后接1个\n),程序发生访问异常。
详细说明:
向ftp server发送如下方式构造的数据包:
if s_block_start("body"):
s_static("1"*32)
s_static("2"*32)
s_static("3"*32)
s_static("4"*32)
s_static("5"*32)
s_static("6"*32)
s_static("7"*12)
s_static("\n")
s_delim(" ")
s_block_end()
当输入的命令行超过172个字符(后接1个\n),0041A661处指令发生访问异常。
原因是用全局变量dword_4321F8给ecx赋值时(0040836B指令处),dword_4321F8已经被改写为用户输入命令。
漏洞的原因是:
在 00402936指令处调用vsprintf之前没有判断目标缓冲区0x432130(只有200字节)的边界,导致后面紧跟的全局变量dword_4321F8被改写。由于程序在向目标缓冲区0x432130打印字符串时会在前面加入“500 undefined command ”这样的前缀,所以用户输入只要超过172个字符就会导致目标缓冲区溢出,程序出错退出。
漏洞证明:
修复方案:
修复的方式:在 00402936指令处调用sprintf函数时,判断源字符串的长度。程序里类似这样的问题还有很多。
版权声明:转载请注明来源 杀破狼@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝