CVE-2012-0158是一个比较有名的老漏洞了,这次从论坛上找到一个poc文件,利用这个poc来分析CVE-2012-0158漏洞的形成。

http://bbs.pediy.com/showthread.php?t=207638

参考自此帖子,但是分析是个人独立完成的,只是参考了poc并没有抄袭思路。

本文步骤:重现漏洞-->漏洞分析-->漏洞利用-->总结

1.重现漏洞

打开poc文件,结果如图

环境如下

如图可见漏洞复现成功,弹出一个计算器。

2.漏洞分析

通过已有的POC找出漏洞产生的原因。

首先定位shellcode在内存中的地址,这里使用的是通过对api下断点找到shellcode的地址。

如图。可见此时shellcode已在栈中。00121461即为栈中空间,从3个nop起为shellcode

在此时看一下栈的整体结构,如下图

4个byte的nop之后接的便是shellcode,根据栈溢出的特点我猜测,7FFA4512为覆盖栈返回地址的地方。跟一下发现如图

原来7FFA4512处是一个jmp esp

这是一个常见的栈溢出跳板。据此我判断这是一个使用跳板地址覆盖栈返回地址的栈溢出,而且此时的esp正好指向shellcode的起始位置,4个byte的nop用来

抵消retn 0x8造成的esp下移。据此栈示意图如下

接下来查找是哪里发生的覆盖,因为是当前函数的栈祯发生溢出,说明肯定是子函数或者当前函数导致的覆盖。但是本栈祯已经被覆盖的一塌糊涂了,怎么知道这个函数的地址呢?

那么就只能对栈进行回溯,正好可以发现一个已经用过的函数返回地址,找到发生溢出的这个栈祯。经过单步跟进最终发现产生问题的语句在这里,如图

可见是一个rep movs导致的溢出。

如图可知溢出函数处于mscomctl模块

CVE-2012-0158个人分析的更多相关文章

  1. Dynamics AX 2012 在BI分析中建立数据仓库的必要性

    AX系统已有的BI分析架构 对于AX 的BI分析架构,相信大家都了解,可以看Reinhard之前的译文[译]Dynamics AX 2012 R2 BI系列-分析的架构 . AX 的BI分析架构的优势 ...

  2. Sql Server 2012 分页方法分析(offset and fetch)

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中  offse ...

  3. CVE: 2014-6271、CVE: 2014-7169 PATCH方案分析

    目录 . RedHat官方给的PATCH第一套方案 . RedHat官方给的PATCH临时方案 . RedHat官方给的PATCH第二套方案 1. RedHat官方给的PATCH第一套方案 0x1: ...

  4. jeecms 2012 源码分析(2) 前台栏目页静态化分析

    还是要说到web.xml文件 <welcome-file-list> <welcome-file>index.html</welcome-file> <wel ...

  5. 看个AV也中招之cve-2010-2553漏洞分析

    试想:某一天,你的基友给你了一个视频文件,号称是陈老师拍的苍老师的老师题材的最新电影.avi,你满心欢喜,在确定文件格式确实为avi格式后,愉快的脱下裤子准备欣赏,打开后却发现什么也没有,而随后你的基 ...

  6. Dynamics AX 2012 性能优化之 SQL Server 复制

    Dynamics AX 2012 性能优化之 SQL Server 复制 分析数据滞后 在博文 Dynamics AX 2012 在BI分析中建立数据仓库的必要性 里,Reinhard 阐述了在 AX ...

  7. 浅谈SQL Server数据库分页

    数据库分页是老生常谈的问题了.如果使用ORM框架,再使用LINQ的话,一个Skip和Take就可以搞定.但是有时由于限制,需要使用存储过程来实现.在SQLServer中使用存储过程实现分页的已经有很多 ...

  8. SharePoint中新创建的Web Application在浏览器中报404错误

    问题描述:在安装完成SharePoint 2010后,进入Central Administration,创建一个新的Web Application,可以正常创建,但访问时却返回404. 平台环境:Wi ...

  9. 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]

    家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...

  10. 2013年全球ERP市场格局(Gartner)

    Gartner于5月5日公布了全球ERP市场的分析报告,报告称全球ERP软件销售额2013年整体增长了3.8%(从2012年$244亿美元到2013年$258亿美元),全球前五位ERP厂商座次例如以下 ...

随机推荐

  1. 使用Masonry在UIScrollView内布局

    理论分析 首先,我们知道Autolayout改变了传统的以frame为主的布局思想.它其实是一种相对布局,核心思想是视图与视图之间的位置关系.比如,我们可以根据矩形的起始横坐标.纵坐标.长和宽这四个变 ...

  2. POJ1011 木棒(dfs+剪枝)

    问题重述: Description乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位.然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始 ...

  3. shell函数使用

    函数定义格式: 和js有点类似,不过在 shell 中 function 关键字是可选的. 如: sum { // shell 语句 } function sum() { // shell 语句 } ...

  4. windows中apache+tomcat整合,使php和java项目能够独立运行

    一.下载和安装 1.安装php  网上有安装教程,不再赘述 2.安装apache 比如安装目录为e:\apache;  项目根目录为e:\www;   网上有安装教程,不再赘述 3.安装jdk  不再 ...

  5. ELK Betas 6.0安装及使用

    Betas 6.0安装及使用 注意: Elastic官网更新非常的快,每个版本的文档有会有不同,具体需要去官网查看最新文档进行配置调整. Beats 平台集合了多种单一用途数据采集器.这些采集器安装后 ...

  6. myeclipse注册码,可以用到2016年

    myeclipse注册码,可以用到2016年 xiangyang kLR8ZF-655954-61677756068297221

  7. 前端PHP入门-033-连接数据库-天龙八步

    php检查MySQL的支持是否开启? 若没有看到mysqli扩展在windows服务器下,打开php.ini文件,将php_mysqli.dll打开即可! 注意: 从PHP7开始默认不再支持mysql ...

  8. web项目中的 log4net的配置

    最近用log4net,网上查了很多资料,照着网上的配置大多都不管用,可能我还是有什么地方配置的不对.看出来的朋友平指出.下面是我自己亲测的,可以用! 1.web项目中的web.config 配置log ...

  9. 基本控件文档-UITableView---iOS-Apple苹果官方文档翻译

    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3496969.html 技术博客http://www.cnblogs.com/ChenYi ...

  10. 2017ACM暑期多校联合训练 - Team 8 1011 HDU 6143 Killer Names (容斥+排列组合,dp+整数快速幂)

    题目链接 Problem Description Galen Marek, codenamed Starkiller, was a male Human apprentice of the Sith ...