- 如果只有前端檢查直接改爲shell.php.jpg繞過檢測然後再上傳截包改爲shell.php
- 如果代碼檢查文件類型則截包改文件類型改成 image/png
- 0x00截斷(shell.php空格.jpg再截包把%20改爲00),或者命名爲shell.php%00.jpg,再截包urldecode
- 利用解析漏洞IIS6.0、IIS7.5、Apache、Nginx,改文件名test.php;.jpg /test.asp/test.jpg test.jpg/.php等進行繞過
IIS 6.0
(1) 目錄解析
以*.asp命名的文件夾裏的文件都將會被當成ASP文件執行。
(2) 文件解析
*.asp;.jpg 像這種畸形文件名在“;”後面的直接被忽略,也就是說當成 *.asp文件執行。
IIS 7.0/7.5
IIS7/7.5在Fast-CGI運行模式下,在一個文件路徑(/xx.jpg)後面加上/xx.php會將/xx.jpg/xx.php 解析爲 php 文件;找個地方上傳 test.jpg ,然後找到 test.jpg 的地址,在地址後加上 /xx.php 即可執行惡意文本。圖片內寫入一句話內容。
Apache
例如:test.php.360,無法識別360的後綴apache就會進行修補,繼續向左識別直到能識別文件類型爲止。Apache文件解析漏洞與用戶的配置有密切關係,嚴格來說屬於用戶配置問題 ;Apache默認一個文件可以有多個以點分隔的後綴,當右邊的後綴無法識別(不在mime.tyoes內),則繼續向左識別,當我們請求這樣一個文件:shell.xxx.yyy
Nginx
例:test.jpg/x.php,對任意文件名,在後面添加 /任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加test.jpg/x.php進行解析攻擊。
- 黑名單檢測繞過
這類型只是針對黑名單裏規則裏的文件後綴進行檢測,有很多思路
(1)文件名大小寫繞過
(2)特殊文件名 例如phtml、cer等
(3)php文件包含,如果無解析漏洞可用,有文件包含可以使用文件包含使圖片或者其它格式的文件解析爲php (例如DVWA高難度等級的文件上傳使用文件包含來解析)
(4).htaccess文件攻擊;黑名單沒有限制.htaccess文件的上傳,我們可以構造一個
建一個.htaccess 文件然後上傳,裏面的內容如下:
<FilesMatch "halo">
SetHandler application/x-httpd-php
</FilesMatch>
這個時候就再上傳一個文件名字是halo的文件,不要後綴名,然後裏面是一句話木馬,用菜刀連接。