福昕阅读器 5.4.4.1128 Firefox Plugin npFoxitReaderPlugin.dll Stack Buffer Overflow

本文详细介绍了福昕阅读器5.4.4.1128在Firefox上的插件npFoxitReaderPlugin.dll存在的Stack Buffer Overflow漏洞。通过访问特定PDF触发溢出,探讨了如何在DEP保护下利用Ret2Libc技术绕过防御,以及分析了DEP的工作模式和VirtualAlloc等关键概念。内容包括溢出原理、漏洞复现和利用技巧。
摘要由CSDN通过智能技术生成

之前在 ISCC2013 线上赛的时候,这个溢出题没能做出来,现在正好在学习溢出,想重现下漏洞。

http://www.exploit-db.com/exploits/23944/

exploit-db 上有简略的描述

测试环境:


Microsoft Windows 7 sp1
Mozilla Firefox 17.0.1
Foxit Reader 5.4.3.0920
Foxit Reader 5.4.4.1128

npFoxitReaderPlugin.dll
版本:2.2.1.530

由于对文件后面的参数未做判断,导致溢出。

exploit-db 上说,当我们访问 http://192.168.0.1/x.pdf?[A x 1024] 时溢出。

在分析之前先讲些要利用到的原理


1. DEP(数据执行保护, Data Excution Prevention)


DEP 的基本原理是将数据所在内存页面标识为不可执行,当程序溢出成功转入 shellcode 时,程序尝试在数据页面上执行指令,此时 CPU 就会抛出异常,而不是去执行恶意指令。

DEP 的主要作用是阻止数据页 (如默认的堆页、各种堆栈页以及内存池页)执行代码。根据实现的机制的不同可分为:软件 DEP 和硬件 DEP。

根据 DEP 的启动参数的不同,DEP 工作状态可以分为四种。

(1) Optin: 默认仅将 DEP 保护应用与 Windows 系统组件和服务,对于其他程序不予保护,但用户可以通过应用程序兼容性工具(ACT, Application Compatibility Toolkit)为选定的程序启用 DEP, 在 Vista 下边经过 /NXcompat 选项编译过的程序将自动应用 DEP。 这种模式可以被应用程序动态关闭,它多用于普通用户版的操作系统,如 Windows XP、Windows Vista、Windows7。


(2)Optout:为排除列表程序外的所有程序和服务启用 DEP,用户可以手动在排除列表中指定不启用 DEP 保护的程序和服务。这种模式可以被应用程序动态关闭,它多用于服务器版的操作系统,如 Windows 2003、Windows 2008。


(3)AlwaysOn:对所有进程启用 DEP 的保护,不存在排序列表,这种模式下,DEP 不可以被关闭, 目前只有在64位的操作系统上才工作在AlwaysOn 模式。


(4)AlwaysOff:对所有进程禁用 DEP,  这种模式下,DEP 也不能被动态开启,这种模式下,DEP 也不能动态开启,这种模式一般只有在某种特定场所才使用,如 DEP

 干扰到程序的正常运行。


2. 利用Ret2Libc 挑战 DEP

由于 DEP 不允许我们直接到非可执行页面执行指令, 我们就需要在其它可执行的位置找到符合我们要求的指令,以便收回程序的控制权,然后继续下一步操作,具体流程可

看下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值