php%00 截断,%00截断问题

一、php 00截断

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

简单测试一下 php 版本<5.3.4

$_GET["filename"] 这样就可以接收到,这样的请求filename=test.php%00.txt

主要利用常见:

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

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

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

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

二、asp 00截断

在文件上传路径可控中使用过,但是今天发现 传入filename=test.asp%00.txt 获得参数值是test.asp

asp应该自动可以截断00后内容。

又看了一下asp上传路径可控的代码,发现这套代码并不是使用request获得的参数,

formPath=upload.form("uploadtypefy") 获得文件路径

对应的函数:

Public function Form(strForm)

strForm=lcase(strForm)

if not objForm.exists(strForm) then

Form=""

else

Form=objForm(strForm)

end if

end function

应该是这种获得路径的方法有问题,还没有想到其它的利用方法。

三 jsp 00截断

String temp=request.getRealPath("/")+request.getParameter("path");

out.println(temp);

String ext = temp.substring(temp.lastIndexOf(".") + 1);

out.println(ext);

%>

发现确实可以使用00截断,如传入path=shell.jsp%00.txt 获得后缀是txt,但是操作文件的api是使用c实现会导致00截断。因此这个与php相似,利用场景是文件上传 文件下载等。

四aspx 00截断

Request.QueryString["filename"].ToString() 很诡异aspx的请求参数可以产生00截断,而且文件下载也会成功。但是asp的却不可以

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值