[原创]BisonFTP Server v3.5 Remote Buffer Overflow 漏洞分析
发表于:
2012-3-12 22:37
6147
[原创]BisonFTP Server v3.5 Remote Buffer Overflow 漏洞分析
第一次分析漏洞可能会让大牛笑话,只有在Exploit找到软杮子捏了。
BisonFTP Server v3.5 Remote Buffer Overflow 漏洞分析
漏洞描述:
BisonFTP Server v3.5在处理接收数据时未判断缓冲区大小造成堆溢出。
漏洞样本来源:http://www.exploit-db.com/exploits/17649/
调试环境及工具
环境:Windows XP3 + BisonFTP Server v3.5
工具:OllyDBG + IDA Pro 6.1 + Interactive Delphi Reconstruct v 2.5.2
漏洞重现:
在Window XP SP3测试环境中架设好BisonFTP Server v3.5并运行,下载exploit-db提供http://www.exploit -
db.com/exploits/17649/ python脚本运行后程序出现崩溃:
调试过程:
OllyDBG载入BisonFTP Server v3.5后发现是DELPHI写的,用Interactive Delphi econstruct加载BisonFTP Server v3.5建立MAP文件,
OllyDBG插件LoadMapEX加载MAP文件来识别VCL库:
OllyDBG重新运行BisonFTP Server v3.5后,运行Python进程攻击测试,一会儿发现EIP的值指向一个非法的地址中:
Alt+K查看调用堆栈OD居然显示空白……无语中……,现在只能通过堆栈窗口进行回逆查看了,通过下面的可以看出程序崩溃在
Forms.TCustomForm.CloseQuery函数里。
0012FC0C 0042E7A8 返回到 Bisonftp.Forms.TCustomForm.CloseQuery+58
0012FC10 00000001
0012FC14 0012FD6C
0012FC18 0012FCF4
0012FC1C 00A5E7A4
0012FC20 0042E6C9 返回到 Bisonftp.Forms.TCustomForm.Close+21 来自 <Bisonftp.Forms.TCustomForm.CloseQuery>
0012FC24 00000000
0012FC28 00A55BA8
0012FC2C 0047F009 返回到 Bisonftp._Unit61.sub_0047EFE4+25 来自 <Bisonftp.Forms.TCustomForm.Close>
0012FC30 0012FC54 指向下一个 SEH 记录的指针
0012FC34 0047F0E9 SE 处理器
0012FC38 0012FC4C
0012FC3C 00A55BA8
0012FC40 00000000
0012FC44 00000000
0012FC48 00000000
0012FC4C /0012FC78
0012FC50 |0047AEB4 返回到 Bisonftp.main.TfrmMain.sub_0047ABA0+314 来自 <Bisonftp._Unit61.sub_0047EFE4>
0012FC54 |0012FCC4 指向下一个 SEH 记录的指针
0012FC58 |0047AF03 SE 处理器
0012FC5C |0012FC78
0012FC60 |00A42A14
0012FC64 |0012FCF4
0012FC68 |00000000
0012FC6C |00000000
0012FC70 |00000000
0012FC74 |00000000
0012FC78 ]0012FCEC
0012FC7C |00420FC9 返回到 Bisonftp.Controls.TControl.WndProc+0D9 来自 <Bisonftp.system.TObject.Dispatch>
0012FC80 |0012FD6C
0012FC84 |0012FCF4
0012FC88 |00A42A14
0012FC8C |0042292F 返回到 Bisonftp.Controls.TWinControl.WndProc+11F 来自 <Bisonftp.Controls.TControl.WndProc>
0042E7A80042E798 |. 8BCC MOV ECX,ESP
0042E79A |. 8BD3 MOV EDX,EBX
0042E79C |. 8B83 98010000 MOV EAX,DWORD PTR DS:[EBX+198]
0042E7A2 |. FF93 94010000 CALL DWORD PTR DS:[EBX+194] ;此call导致崩溃
0042E7A8 |> 8A0424 MOV AL,BYTE PTR SS:[ESP]
00A5E398 0A 04 00 00 04 04 00 00 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E3A8 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E3B8 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E3C8 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E3D8 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E3E8 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
………………… 此处省略
……………….. 此处省略
EBX
00A5E7A4 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E7B4 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E7C4 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E7D4 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E7E4 33 C9 83 E9 AA E8 FF FF FF FF C0 5E 81 76 0E BB 3蓛楠?繼乿
………………… 此处省略
……………….. 此处省略
EBX + 194
00A5E938 1D 54 21 A8 44 14 A0 33 C7 CB 1C CE 5B B4 99 8E T!―?撬蝃礄
00A5E948 FC D2 EE 5A D1 C1 CF CA 6E C1 9C 35 90 90 90 90 頩蚜鲜n翜5悙悙
00A5E958 90 90 90 90 9A 5C 3C 7E 0A 00 00 00 00 00 00 00 悙悙歕<~........
00A5E36C 00 00 00 00 00 00 00 00 0A 04 00 00 04 04 00 00 悙悙悙悙悙悙悙悙
00A5E37C 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E38C 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E39C 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
00A5E3AC 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 悙悙悙悙悙悙悙悙
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
上传的附件: