php00截断原理,burpsuite上传截断及截断原理介绍

*欢迎关注我的 Github,会在这里持续更新渗透测试和 OSCP 考试的相关学习资源。

%00和0x00:

0x00是十六进制的0

%00是url加密,是url的终止符

burpsuite上传截断估计很多人都用过,但具体原理是什么,还是有很多人不明白。我自己也存在很多疑惑,所以今天就花点时间认真梳理一下,与君共勉。

一、简介

截断的产生核心,就是chr(0)字符 。

这个字符即不为空(Null),也不是空字符(""),更不是空格!

当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生的原因。

二、后端语言

2.1 PHP

2.1.1

在php 5.3.4中修复了0字符,但是在之前的版本中仍然危害巨大。

简单测试一下 (PHP 版本<5.3.4)

$data = $_GET["filename"]`;

echo $data;

?>

url中输入xx.php?filename=test.php%00.txt,实际输出为test.php.

常见利用方法:

1.上传时路径可控,使用00截断

2.文件下载时,00截断绕过白名单检查

3.文件包含时,00截断后面限制(主要是本地包含时)

4.其它与文件操作有关的地方都可能使用00截断。

2.1.2

dad4df0e0bf4

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容器解析漏洞

3.1 我们都知道windows2003 + IIS6.0下,如果目录结构中有xxx.asp这样的目录,那么所有这个目录下的文件不管扩展名为什么,都会当作asp来解析。

我们一般称这个漏洞为 windows2003+iis6.0目录解析漏洞。

3.2

dad4df0e0bf4

image.png

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值