Winsock Ftp Daemon内存溢出及修复
当输入的命令行超过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函数时,判断源字符串的长度。程序里类似这样的问题还有很多。
在 00402936指令处调用sprintf函数时,判断源字符串的长度。程序里类似这样的问题还有很多。
>更多相关文章
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御