今天找了一个存在缓冲区的漏洞的程序来练习一下缓冲区溢出技术 果然看书和实际的操作是有很大差距的...这不一动手就问题重重。。还望大牛路过时能进来看看帮小弟解决一下 这些小问题 感激不尽!! 实验环境 xp sp3 + htvhstodvd30shareeng 实验软件和用到的测试文件 以及 我写的 生成poc文件的python脚本均在附件中打包 如果解压失败的话 请下载快压 这个软件解压 程序名称是 htvhstodvd30shareeng.exe 是一个将VHS 格式转换为DVD 格式的软件 同时还 有注册机制 有兴趣的可以破解一下它 欢迎分享-_- .. 漏洞简述 : 该程序在处理 .ilj 工程文件中FILE 参数时 对数据处理不当 造成 缓冲区溢出. 具体请看附件中的POC 代码和文件。。 漏洞调试过程: 打开漏洞程序 选择Advanced Mode 然后点击左上角的Project 选择Open Project 此时用OD附加 然后打开jmp.ilj文件
上图左侧是生成该文件的Python 代码 右侧是OD 捕获到异常时断下 注意此时 eip 的值已经被我控制 为 0x42424242 即代表4个B 并且 此时 esp 中的值正好指向我们的 Shellcode 区 ;shellcode 的作用是弹一个框。。 接下来自然就是在 内存中 查找 jmp/call esp便可劫持程序流程 说干就干 这里我找到的地址是0x7dcf42ef 这个需要在具体环境中具体确定
于是用\xef\x42\xcf\x7d 替换 BBBB( 在计算机中字符需反序 ) 重新运行脚本 生成新的 sploit.ilj 文件 或者直接使用附件中的Success_sploit.ilj文件 重复刚才的操作 。。。
此时你就会发现我的shellcode有问题 (这里说声抱歉 由于本人技术渣渣 不知该怎么办 。。。)不过由图中可以看到程序已经能够执行 栈区的shellcode 中了 应该只要找到合适的 shellcode 就能够执行任意代码了 希望有人找到合适的shellcode的后 能分享一下 小弟感激不尽 !!!
这里说下我在调试时遇到的另一个 异常 我在用 程序打开 seh_sploit.ilj 文件时触发一个异常
此时 同时此时 SHE 结构也被我 用经典的SHE利用方法给覆盖了 照理说应该就能执行到我的shellcode 区域 可是 事与愿违 忽略异常后程序居然 退出了!!!这下我就蒙了 我怀疑是不是 有 safeseh 机制 但是我用插件检测后发现 其并没有 启用该安全机制 于是 我没辙了 如果大家能在解决该问题后 分享给我 在下感激 感激!!! 这就是今天的分享 谢谢阅读 在下文笔不好 如有看的不爽的地方 敬请谅解 谢谢。
|