如何利用PHP漏洞?

5

我从未看到过实际的缓冲区溢出攻击。假设我发现了一个似乎存在漏洞的服务器,我应该在哪里获取用于利用漏洞的概念代码,最好是C/C++代码?例如,我找到了这个漏洞。

Multiple directory traversal vulnerabilities in 
    functions such as 'posix_access()', 'chdir()', 'ftok()'
    may allow a remote attacker to bypass 'safe_mode' 
    restrictions. (CVE-2008-2665 and CVE-2008-2666).  

如何获得教育目的的概念证明代码?

附注 我是一名学生,我的唯一愿望是学习。


6
我希望我足够厉害,能够回答这个问题。 - Carson Myers
1
请解释Metasploit与此有什么关系... - user1831086
1个回答

8

我相信您可能没有完全理解目录遍历漏洞的本质。

PHP中的safe_mode表示只允许打开本地文件路径,而不允许打开任何可识别的协议,例如http://路径。验证路径是否为本地文件的safe_mode检查可以被欺骗,接受HTTP URL(和其他协议)并错误地将它们标识为本地路径,从而允许一系列安全漏洞取决于具体实现(但远程代码包含或XSS攻击是首先想到的)。

一般情况下,你需要使用PHP脚本来利用PHP漏洞,因为这些漏洞实际上存在于解释器中。缓冲区溢出不会真正发生在你的PHP代码中,而是在PHP编译器的某些特定函数中发生,为了利用它,你需要找到一个调用该函数的脚本并提供用户输入的参数(即浏览流行的开源软件),或者简单地创建自己的有意的利用脚本并上传到你想要利用的位置,比如你的Web托管提供商。

当涉及PHP解释器中的漏洞时,实际上是通过PHP函数调用来利用Web服务器/PHP模块,而不是通过编写利用程序(除非它们只是向PHP网站发送HTTP请求的应用程序)。


你是在说,如果服务器缺少易受攻击的脚本,即使运行的 PHP 版本存在漏洞,也无法被攻击利用吗? - Dr Deo
1
是的,基本上这是正确的。(但是其他安全漏洞可能允许攻击者引入新的代码/向量,然后在第二步使用它们来利用安全漏洞。) - kb.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接