(OWASP汉化)攻击系列大全(番外篇):嵌入空代码

漏洞描述

嵌入空字节/代码技术利用了程序没有正确处理NULL终止符后缀的漏洞。这项技术被用于发起其他攻击,如文件浏览、目录遍历、SQL注入、任意代码执行和其他攻击。可以发现很多易受攻击的应用程序,和利用这种技术来破坏系统的漏洞。
这种技术包括几种表示NULL终止符后缀的变体:

PATH%00
PATH[0x00]
PATH[空字符的替代表示]
<script></script>%00

攻击示例

示例1-PHP脚本

在下面的例子中,显示了使用这种技术修改URL并访问文件系统上的任意文件,原因是PHP脚本中存在一个漏洞。

$whatever = addslashes($_REQUEST['whatever']);
include("/path/to/program/" . $whatever . "/header.htm");

通过利用NUUL后缀操纵URL,攻击者可以访问UNIX密码文件
http://vuln.example.com/phpscript.php?whatever=../../../etc/passwd%00

示例2-Adobe PDF ActiveX 攻击

另一个已知的攻击利用了ActiveX组件(pdf.ocx)中的缓冲区溢出来允许远程执行任意代码。发出以下请求时触发漏洞
GET /some_dir/file.pdf.pdf%00[long string] HTTP/1.1
在此情况下,请求必须发送到于空字节(%00)处截断成的请求的Microsoft IIS和Netscape Enterprise Web服务器上。尽管查找文件请求的URI被截断,但仍会将长字符串传递给Adobe ActiveX组件。该组件触发RTLHeapFree()内的缓冲区溢出,允许攻击者覆盖内存中的任意字。可以通过将恶意内容添加到任何嵌入式链接的末尾并引用任何Microsoft IIS或Netscape Enterprise Web服务器来执行此攻击。没有必要建立恶意网站来执行此攻击。

额外的参考

相关威胁

相关攻击类型

相关的漏洞

相关防御措施

漏洞分类