1. 程式人生 > >burpsuite之——上傳截斷及截斷原理介紹

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