1. 程式人生 > 實用技巧 >檔案上傳繞過小結

檔案上傳繞過小結

前端檢測繞過

關閉JS或者自己寫一個上傳頁面,也可以根據情況使用其他方法。比如如果檢測的是檔案型別和檔案字尾,可以先把要傳的木馬檔案改一下字尾,抓包的時候在改回來。

內容檢測繞過

常見的比如檢測PHP的標籤:<?php,對於這種情況,在開啟了相應配置時,可以採用短開標籤,比如<?=。或者沒檢測大小寫的話切換大小寫。如果還不行可以考慮<script language="php">這種常用於phtml的標籤。

對於檢測檔案頭是否是圖片的,可以在檔案開頭補上GIF89a。

還有一些其他的內容檢測手段,具體情況可以具體分析。

黑名單繞過

一般黑名單都是檢測檔案型別和檔案字尾。檔案型別實在是太容易修改了,直接改content-type即可,這裡主要討論關於檔案字尾的繞過。黑名單這東西很難寫的特別全,我們主要是利用他的這個點。比如限制了php,我們可以上傳phtml,php3,php5等等,甚至可以上傳.user.ini,.hatccess這種配置檔案。還可以利用一些解析漏洞來進行繞過,下面單獨講一些解析漏洞。

解析漏洞

解析漏洞只有在特定的版本存在,有時間我在補充版本。

IIS解析漏洞

以.asp .asa等作為字尾命名的資料夾下面的檔案,都會被當作可執行檔案解析,而不會考慮這些資料夾下檔案的字尾。

;後面的部分不被解析,比如1.asp;1.jpg,但是如果你利用黑名單檢測,你的程式碼檢測到的最終字尾將是jpg。

IIS畸形解析漏洞

比如上傳了一個1.jpg,訪問的時候輸入1.jpg/1.php,會被當作PHP執行。

特定版本和設定的nginx也存在上述漏洞。

apache解析漏洞

一些apache解析檔案時,從後往前來確定檔案的字尾是啥,比如xxx.php.rar會按照php進行解析。

未完待續

白名單繞過

白名單是最難繞的,一般也是靠解析漏洞或者他沒限制傳配置檔案來繞。比如利用%00截斷,傳輸.user.ini。當然,也可以結合檔案包含漏洞來解析木馬。

結合檔案包含

如果有檔案包含,白名單都不管用,任何被包含的檔案,都會被解析,檔名是啥都無所謂了。