Kali linux渗透测试
苑房弘 FANGHONG.YUAN@163.COM
第九章 缓冲区溢出
程序漏洞从哪里来
• 罪恶的根源:变量
• 数据与代码边界不清
• 最简漏洞原理 —— shell脚本漏洞
缓冲区溢出
• 当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被“撑
暴”,从而覆盖了相邻内存区域的数据;
• 成功修改内存数据,可造成进程劫持,执行恶意代码,获取服务器控制权等后果
如何发现漏洞
• 源码审计
• 逆向工程
• 模糊测试
• 向程序堆栈半随机的数据,根据内存变化判断溢出
• 数据生成器:生成随机、半随机数据
• 测试工具:识别溢出漏洞
WINDOWS 缓冲区溢出
FUZZER
•
•
SLMail 5.5.0 Mail Server
ImmunityDebugger_1_85_setup.exe
• mona.py
• http://pan.baidu.com/s/1o6kT6gM
FUZZER
•
SLMail 5.5.0 Mail Server
•
POP3 PASS 命令存在缓冲区溢出漏洞
• 无需身份验证实现远程代码执行
• DEP:阻止代码从数据页被执行
• ASLR:随机内存地址加载执行程序和DLL,每次重启地址变化