burpsuite之——上传截断及截断原理介绍

转载请注明出处: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.

常见利用方法

  • 1.上传时路径可控,使用00截断
  • 2.文件下载时,00截断绕过白名单检查
  • 3.文件包含时,00截断后面限制(主要是本地包含时)
  • 4.其它与文件操作有关的地方都可能使用00截断。

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来解析。

 

相关文章

数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98...
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'n...
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采...
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(j...
<% ’判断文件名是否合法 Function isFilename(aFilename...