转载请注明出处:https://blog.csdn.net/l1028386804/article/details/84197898
一、简介截断的产生核心,就是chr(0)字符 。
这个字符即不为空(Null),也不是空字符(""),更不是空格!
当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生的原因。
二、后端语言2.1 PHP
在PHP 5.3.4中修复了0
字符,但是在之前的版本中仍然危害巨大。
简单测试一下 (PHP 版本<5.3.4)
<?PHP
$data = $_GET["filename"]`;
echo $data;
?>
url中输入xx.PHP?filename=test.PHP%00.txt
,实际输出为test.PHP
.
常见利用方法:
2.2 ASP
<%
response.write(request("Filename"))
%>
传入filename=test.asp%00.txt, 获得参数值是test.asp,asp 会自动截断 %00 后面的内容。
2.3 JSP
<%
String temp=request.getRealPath("/")+request.getParameter("path");
out.println(temp);
String ext = temp.substring(temp.lastIndexOf(".") + 1);
out.println(ext);
%>
传入path=shell.jsp%00.txt 获得后缀是txt,但是操作文件的api是使用 C 实现会导致00截断。因此这个与PHP相似,利用场景是文件上传 文件下载等。
三、Web容器解析漏洞我们都知道windows2003 + IIS6.0下,如果目录结构中有xxx.asp这样的目录,那么所有这个目录下的文件不管扩展名为什么,都会当作asp来解析。
原文地址:https://blog.51cto.com/binghe001/2929219
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。