专栏名称: 吾爱破解论坛
吾爱破解论坛致力于软件安全与病毒分析的前沿,丰富的技术版块交相辉映,由无数热衷于软件加密解密及反病毒爱好者共同维护,留给世界一抹值得百年回眸的惊艳,沉淀百年来计算机应用之精华与优雅,任岁月流转,低调而奢华的技术交流与探索却
目录
相关文章推荐
先进能源科技战略情报研究中心  ·  美国企业推出负碳型可持续航空燃料产品 ·  昨天  
先进能源科技战略情报研究中心  ·  美国企业推出负碳型可持续航空燃料产品 ·  昨天  
HZ老乡俱乐部  ·  苹果阿里联手狂欢,淘天购却在为生存而战! ·  昨天  
HZ老乡俱乐部  ·  苹果阿里联手狂欢,淘天购却在为生存而战! ·  昨天  
海安公安微警务  ·  记好诈骗关键词——“银联会议”APP ·  2 天前  
海安公安微警务  ·  记好诈骗关键词——“银联会议”APP ·  2 天前  
51好读  ›  专栏  ›  吾爱破解论坛

【漏洞分析】Freefloat FTP Server 1.0 溢出漏洞分析(适合新手)

吾爱破解论坛  · 公众号  · 互联网安全  · 2016-11-23 12:01

正文

没有漏洞软件怎么行呢对吧

样本在论坛下载:http://www.52pojie.cn/thread-557521-1-1.html


其实这是一个非常简单的漏洞,就是栈溢出
当时来源于一个特殊的面试,问我分析过二进制漏洞没有,我说没有,叫我去分析一个,那我就在exploit db搜寻栈溢出,终于找到一个简单的了,就是这个
环境
xp sp3 英文版(就是metasploit魔鬼训练营的xp环境)
攻击环境:kali 2.0
工具及插件:
IDA
ImmunityDebugger
https://github.com/corelan/mona
pwntools
漏洞软件:freefloatftpserver1.0

一个新手学着分析的过程
下载漏洞程序打开,可以看到已经监听21端口,程序看着也应该简单



玩一下ftpfuzz


确实可以溢出,挖洞还是fuzzing牛啊


利用mona插件查看modules信息,XP还没有搞ASLR吧(ASLR 在 XP 时代已经提出来了,但 XP 上的ASLR 功能有限,只是对 PEB 和 TEB 进行简单的随机化处理。直到 Windows Vista 出现之后 ASLR 才真正发挥作用。)


DEP默认只针对windows自带的程序和服务(第一次还是简单点比较好)


查找jmp esp(因为知道要用,所以先查找了


选 kernel32的吧7C86467B  FFE4             JMP ESP利用pwntools编写脚本尝试攻击(其实那个ftp命令只要是无关紧要,随便搞个命令都可以溢出,不过返回地址有差异而已)


成功溢出


通过栈上的一些返回地址(这就是栈回溯吧),找到了ftp给客户端返回欢迎信息的地方,这是nmap等扫描器指纹识别的字符串


下断点。运行,发payload,断下来单步,跟着又弹异常


继续在这个函数下断,重来一遍,f7跟进,继续单步,看到接受我们输入的recv函数


继续,看到判断用户传的命令是否有回车的代码(跟0d,0a比较)


继续下断点,重复上面步骤


调试发现,不断去跟ftp的各种命令去比较


查看ida的话也印证了这一点


跟着比较完都不匹配,就会返回ftp服务器不明白这个命令


继续,又出现了


最终发现就是00402de这个函数有问题,查看此时的堆栈信息,我们的输入传进去了


跟进去里面有个strcpy的代码--à rep movsd


Ida查看更清晰,这个跟基础的pwn题一样………


看看变量地址


那么填充字符数量是252,因为这里没用ebp来索引 ,所以不用加上ebp


修改下代码,‘FEAT加个空格已经6个字符,所以我们补246个A就行了

当然不用计算也是可以的,mona生成一些测试样例,用于定位返回地址的

.



跟我们计算的一样的


搞个abcd看看对不对


实验可以知道计算没错


那我们尝试发送一个弹窗的shellcode过去看看


直接看结果吧返回jmp esp的地址


至少要高8个垃圾字节啊


实验成功


总结
漏洞原因是,ftp服务器会将用户的输入复制到一个缓冲区,目的是拼接上一些用户提示信息返回给用户,使用了strcpy函数,没对长度进行检查,导致缓冲区溢出。







请到「今天看啥」查看全文