解析漏洞主要是一些特殊文件被Apache、IIS、Nginx等Web容器在某種情況下解釋成腳本文件格式并得以執行而產生的漏洞。主要有:
IIS 5.x/6.0解析漏洞
目錄解析:在網站下建立文件夾的名稱中帶有.asp、.asa等可執行腳本文件后綴的文件夾,其目錄內的任何擴展名的文件都被IIS當作可執行文件來解析并執行。
http://www.xxx.com/xx.asp/xx.jpg
文件解析:在IIS6.0下,分號后面的不被解析,也就是說6.0下,分號后面的不被解析,也就是說xx.asp;.jpg將被當做xx.asp解析并執行。
http://www.xxx.com/xx.asp;.jpg
IIS6.0 默認的可執行文件有asp、asa、cer、cdx四種。
IIS 7.0/IIS 7.5/ Nginx < 0.8.3畸形解析漏洞
在默認Fast-CGI開啟狀況下,訪問以下網址,服務器將把xx.jpg文件當做php解析并執行。
http://www.xxx.com/xx.jpg/.php
Nginx < 8.03 空字節代碼執行漏洞
影響范圍:Nginx0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
訪問以下網址,服務器將把xx.jpg文件當做php解析并執行。
http://www.xxx.com/xx.jpg%00.php
Apache解析漏洞
Apache對文件解析是從右到左開始判斷解析,如果文件的后綴為不可識別,就再往左判斷,解析。 如xx.php.owf.rar,由于Apache無法解析rar和owf后綴,但能夠解析php后綴,因此Apache會將xx.php.owf.rar當做php格式的文件進行解析并執行。
訪問以下網址,服務器將把xx.php.owf.rar文件當做php解析并執行。
http://www.xxx.com/xx.php.owf.rar
CVE-2013-4547 Nginx解析漏洞
訪問以下網址,服務器將把xx.jpg文件當做php解析并執行。
http://www.xxx.com/xx.jpg(非編碼空格)0.php
使用.htaccess將任意文件作為可執行腳本解析
如果在Apache中.htaccess可被執行.且可被上傳.那可以嘗試在.htaccess中寫入:
<FilesMatch ".(jpg)$"> SetHandler application/x-httpd-php </FilesMatch>
這將把目錄下的所有后綴為jpg的文件當做可執行的php腳本進行解析并執行。