首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP 5.3.9漏洞帮助

PHP 5.3.9漏洞帮助
EN

Security用户
提问于 2012-07-04 02:24:29
回答 1查看 660关注 0票数 8

这是我自己试图利用的第一批漏洞之一,以扩大我对漏洞的了解。

这是一个良好的脆弱性总结。我已经能够控制EIP,但我不知道如何执行代码。

我的测试机器是Ubuntu11.10,在堆栈、堆和库中启用了ASLR和NX。我控制的字符串(如本文所述)存储在堆中,因此我不能在堆中放置任何代码,因为它不能执行。除了EIP之外,我还控制EDI寄存器,但仅此而已。这是一个32位系统,所以蛮力足以击败ASLR (另外,我没有任何其他安全机制;不太现实,但一个良好的开端)。

编辑:

刚找到这个PoC。基本上,作者回到我所在的地方,然后依赖PHP服务器上的代码来进一步阅读Apache进程内存。他说代码执行是“极有可能的”,但除此之外并没有太多的细节。

EN

回答 1

Security用户

回答已采纳

发布于 2012-07-11 19:33:30

这是一个非常类似于悬吊指针的严重漏洞。简而言之,它允许远程攻击者读取和/或写入任意内存地址。这比简单的基于堆栈的缓冲区溢出更有价值,特别是在利用现代系统时。针对此漏洞的可靠远程代码执行漏洞尚未出现在公众面前。然而,Vupen,一个著名的剥削交易商,可能已经开发了这样一种利用

因为这也是一个内存泄漏漏洞,您不必使用蛮力绕过ASLR。读取有效负载在内存中的ASLR内存地址的开发已经写好了

对环境影响投资的控制仍然存在问题。我还没有见过这样的漏洞,但它看起来可能是可能的,可能是通过一个GOT覆盖或者破坏堆栈框架。

在您完成EIP/RIP之后,您有几个选项。一种选择是使用面向返回的编程 (ROP链)执行任意代码。ROP链由执行有用任务的应用程序中的汇编程序片段组成,这些任务被链接在一起。一个常见的ROP小工具是用jmp edx控制EIP/RIP。另一个有用的ROP小工具将是对system()的调用,请记住,由于ret2libc对system()的调用将失败,因为您不知道该函数的地址,因此需要ROP小工具(S)。这些是一些简单的例子,但是ROP链也可能非常复杂。ROP链很有用,因为它们由必须是可执行且不是随机的代码组成。目标应用程序中有帮助您找到ROP小工具的工具。在像Apache这样的应用程序中,肯定有许多有用的ROP小工具。

或者另一种选择是泄漏内存以查找可以放置有效负载的内存地址。然后击败NX位 (可能需要一个ROP链)使您的有效负载可执行,并将EIP/RIP指向您的有效负载。

轰隆隆。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/16806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档