MS10_087漏洞学习研究
类别:栈溢出,fileformat类别漏洞
描述: This module exploits a stack-based buffer overflow in the handling of the 'pFragments' shape property within the Microsoft Word RTF parser.
参考资料:《Metasploit魔鬼训练营》p276-p286
利用的是exploit/windows/fileformat/ms10_087_rtf_pfragments_bof模块,它会生成一个.rtf文件,在靶机中打开后会执行payload。
我这里的payload是弹出计算器,成功实现!
MS10_087漏洞原理分析
用OllyDbg打开winword.exe,按f9运行。在word中打开测试文件ms10087.rtf,OllyDbg捕获异常:
出错的原因是什么呢?此处访问内存中0x00130000地址处,而通过alt+m可知0x00104000到0x0012ffff才是当前进程的栈空间,可知此次内存访问越界了。
根据经验,越界一般是想触发异常,让程序执行seh,那么seh应该在之前被覆盖了。
在OllyDbg标题栏可以看到此处的模块是mso,用IDA打开mso.dll分析。
但是ida反汇编似乎要花好久时间,我一个午觉睡醒了还卡卡的在分析,就先不弄这个ida的了。而且这一步的目的也只是分析出错处所在的函数入口,以查看栈中对应此函数的参数。
这里我们只要在函数入口处0x30ED4406(这里的地址为什么又固定了?而且还有很诡异的一点就是:通过ctrl+g可以来到0x30ED4406处,但是一移动这个地址就消失,本来push edi的机器码57和其他机器码组成了这里的add指令,不知道为什么两边的兄弟要这么强势。。)
源地址为0x1A54000C,目的地址为0x00123E98,长度为0x322b*4=0xC8AC个字节。目的地址离栈底0x0012ffff的距离0xC167少于复制长度,造成溢出,引发异常。
异常之后自然就是执行SEH,可是我这里被覆盖的SEH却是指向0xBDB98B85,可是这个地址并不能访问!
在这里,我是先在OllyDbg中打开winword.exe,然后再在word中打开ms10087.rtf。所以我想会不会是这里出问题,就另外不通过ollydbg直接打开winword.exe,然后打开ms10087.rtf,结果出乎意料,程序并没溢出计算器,而是直接关闭了。
但是直接双击打开ms10087.rtf还是能成功溢出的。
重新看了看书,说的挺模糊的。说是让修改下mso.dll,设置软断点。重启word,ollydbg就会加载进去。(未完待续。。)
MS10_087漏洞学习研究的更多相关文章
- MS08_067漏洞学习研究
p197 MS08-067漏洞渗透攻击 按照书上的设置做,exploit得到错误信息: Exploit failed [unreachable]: Rex::ConnectionRefused The ...
- KingView 6.53漏洞学习研究
类别:堆溢出 描述:此漏洞存在于KingView6.53软件的HistorySvr.exe进程中,这个软件服务程序在TCP 777端口监听时收到一个超长请求,导致堆缓冲区溢出从而执行任何代码. 参考资 ...
- PWN二进制漏洞学习指南
目录 PWN二进制漏洞学习指南 前言 前置技能 PWN概念 概述 发音 术语 PWN环境搭建 PWN知识学习途径 常见漏洞 安全机制 PWN技巧 PWN相关资源博客 Pwn菜鸡小分队 PWN二进制漏洞 ...
- BigPipe学习研究
BigPipe学习研究 from: http://www.searchtb.com/2011/04/an-introduction-to-bigpipe.html 1. 技术背景 FaceBook ...
- XSS漏洞学习笔记
XSS漏洞学习 简介 xss漏洞,英文名为cross site scripting. xss最大的特点就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的. 说白了就是想尽办法让你加载 ...
- Java 公平锁与非公平锁学习研究
最近学习研究了一下Java中关于公平锁与非公平锁的底层实现原理,总结了一下. 首先呢,通过其字面意思,公平与非公平的评判标准就是付出与收获成正比(和社会中的含义差不多一个意思).放到程序中,尤其是 在 ...
- 详解 Facebook 田渊栋 NIPS2017 论文:深度强化学习研究的 ELF 平台
这周,机器学习顶级会议 NIPS 2017 的论文评审结果已经通知到各位论文作者了,许多作者都马上发 Facebook/Twitter/Blog/ 朋友圈分享了论文被收录的喜讯.大家的熟人 Faceb ...
- C++的开源跨平台日志库glog学习研究(三)--杂项
在前面对glog分别做了两次学习,请看C++的开源跨平台日志库glog学习研究(一).C++的开源跨平台日志库glog学习研究(二)--宏的使用,这篇再做个扫尾工作,算是基本完成了. 编译期断言 动态 ...
- C++的开源跨平台日志库glog学习研究(二)--宏的使用
上一篇从整个工程上简单分析了glog,请看C++的开源跨平台日志库glog学习研究(一),这一篇对glog的实现代码入手,比如在其源码中以宏的使用最为广泛,接下来就先对各种宏的使用做一简单分析. 1. ...
随机推荐
- DevOps之服务故障
唠叨话 关于德语噢屁事的知识点,仅提供精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <DevOps服务故障> 0.故障1.设施故障2.设备故障3.系统故障4.虚拟化故障5.存 ...
- 改变oracle数据库归档模式_译文
Changing the Database Archiving Mode 改变数据库归档模式. Purpose 目的 This module describes how you can change ...
- ios自定义数字键盘
因为项目又一个提现的功能,textfiled文本框输入需要弹出数字键盘,首先想到的就是设置textfiled的keyboardType为numberPad,此时你会看到如下的效果: 但是很遗憾这样 ...
- win10 UWP 九幽数据分析
九幽数据统计是统计和分析数据来源,用户使用,先申请账号 http://www.windows.sc 创建应用 图片要72*72 记密钥 在项目Nuget 在App.xaml.cs public App ...
- C# 相对路径转绝对路径
如果是路径相对路径,使用 Path 转换 System.IO.Path.Combine(文件夹, relativePath); 文件夹就是相对的文件夹. 这样就可以把相对路径转绝对. 参见:http: ...
- Linux入门(8)——Ubuntu16.04安装sublime text 3并配置Python开发环境
打开终端,添加sublime text 3的仓库: 按enter键继续 更新软件库: sudo apt-get update 安装Sublime Text 3: sudo apt-get instal ...
- Loadrunner Http接口Get/Post方法性能测试脚本解析
最近使用LoadRunner 11进行了一次完整的Http WEB接口性能测试,下面介绍下Http接口Get/Post方法性能测试脚本通用编写方法. 1. Http接口性能测试基本流程 首先定义了一个 ...
- highcharts框架使用总结
Highcharts官网地址:https://www.hcharts.cn/products/highcharts首先需要引入jQuery框架,然后包含Highcharts框架需要使用到的js文件,最 ...
- LeetCode 695. Max Area of Island (岛的最大区域)
Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) conn ...
- jQrid常用操作(转帖)
转自: http://blog.csdn.net/zhcj3672/article/details/6944955 JqGrid相关操作备忘 方法列表 1.获得当前列表行数: $("#gri ...