分你所享、信息共享、轻松分享
来自民间的思想 | 送人玫瑰,手有余香。

Windows漏洞利用开发教程Part 2:Short Jump

*本文原创作者:zusheng,本文属FreeBuf原创奖励计划,未经许可禁止转载

0×01 前言

漏洞-信息安全界最常见的词汇,在百度百科是这样描述的。 漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。 p1.jpg 本文主要介绍的是Windows软件漏洞的利用开发教程。 我花了大量的时间来研究了计算机安全领域Windows漏洞利用开发,希望能和大家分享一下,能帮助到对这方面感兴趣的朋友,如有不足,还请见谅。

0×02 准备阶段

欢迎阅读本系列文章的第二部分,如果你错过了第一部分,请点击下方传送门。 http://www.freebuf.com/articles/system/166500.html 本部分我们将介绍如何使用short jump来解决在堆栈上中断的shellcode。 我们需要准备以下工具: 1、Windows XP SP3 32-bit系统iso镜像 2、Immunity Debugger-漏洞分析专用调试器 3、代码文本编辑器(个人喜好,我用的是notepad++) 4、VX Search Enterprise 9.7.18 VX Search是一款能够快速搜索电脑文件的工具软件,我们的目标是VX Search Enterprise版本9.7.18,你可以通过下面链接下载存在漏洞的程序。 https://www.exploit-db.com/apps/746ec728a4cf975be799c7f509db383e-vxsearchent_setup_v9.7.18.exe 软件下载安装 15232621177597.png

0×03 漏洞分析

漏洞地址: https://www.exploit-db.com/exploits/42181/ 通过分析我们知道漏洞存在导入XML文档功能中。XML文档classify标签的name属性导致了堆栈缓冲区溢出。 1523262123785.png

构造XML

我们知道漏洞发生的地点,现在我们就要通过构造一个XML文档来促使程序发生崩溃。 # -*- coding: UTF-8 -*- juck = "A" * 2000 #测试字符串 xmlpayload = '<?xml version="1.0" encoding="UTF-8"?>\n<classify\nname=\'' + juck + '\n</classify>' xmlfp = open("payload.xml","w") #生成测试Payload文档 xmlfp.write(xmlpayload) xmlfp.close() 通过Import Command选项导入payload.xml文件,程序发生崩溃。 15232621296519.png

崩溃分析

现在我们打开Immunity Debugger,然后File-Open打开vxsrchc.exe 15232621341922.png 点击Run program或者按F9让程序运行。 15232621403766.png 通过Import Command选项导入payload.xml文件,程序发生崩溃。