%00截断问题

Posted 爬虫仔蛙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了%00截断问题相关的知识,希望对你有一定的参考价值。

%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截断

在文件上传路径可控中使用过,但是今天发现<%response.write(request("Filename"))%> 传入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的却不可以

以上是关于%00截断问题的主要内容,如果未能解决你的问题,请参考以下文章

将日期截断为仅小时/分钟

%00截断的猜测

%00

黑帽SEO手法

ereg正则%00截断

ctfhub技能树—文件上传—00截断