常見解析漏洞

IIS6.0-文件解析漏洞
IIS6.0-目錄解析漏洞
IIS7.0-畸形解析漏洞

apache-%0a解析漏洞
apache-未知後綴名解析漏洞

nginx-訪問文件解析漏洞
nginx-畸形解析漏洞
nginx-截斷解析漏洞

IIS 6.0

1、目錄解析 example:www.xxx.com/xxx.asp/xxx.jpg
IIS服務器會把.asp .asa目錄下的文件都解析成asp文件。其中xxx.jsp可以是任意後綴的文件,但是裏面的內容是webshell腳本。
2、文件解析
example:www.xxx.com/xxx.asp;.jpg
分號後面的不解析,所以最後解析的文件就變成了xxx.asp
3、IIS 6.0除了asp還可以解析 .asa .cer .cdx類型的文件
例如:/xxx.asa/xxx.jpg, /xxx.cer/xxx.jpg, /xxx.cdx/xxx.jpg
IIS 7.0,IIS 7.5,Nginx <8.03 畸形解析
在Fast-CGI開啓的狀態下,在類似xxx.jpg後面加上/xxx.php,變成/xxx.jpg/xxx.php路徑會解析成PHP文件

apache

Apache版本在2.4.0到2.4.29
在默認配置下, “上傳”一個帶“換行符”的php文件上去,使用http://ip/test.php%0a訪問,可直接解析PHP內容。

在Apache 1.x和Apache 2.x中1.php.rar會被當作php文件執行。
Apache在解析文件時有一個原則:當碰到不認識的擴展名時,將會從後面向前解析,直到碰到認識的擴展名爲止。
例 上傳文件:
後綴名bb 不認識,向前解析
後綴名aa 不認識 向前解析
1.php 最終解析結果爲PHP文件
這種方法可以繞過基於黑名單的檢查。(如網站限制,不允許上傳後綴名爲PHP的文件)
Apache認識的擴展名保存在安裝目錄下"/conf/mime.types"文件中。

nginx

是錯誤配置導致解析漏洞
該解析漏洞和php、Nginx版本無關。
這其中涉及到php的一個選項:cgi.fix_pathinfo,該值默認爲1,表示開啓。
Nginx解析漏洞利用方式:
上傳free.jpg,訪問:
/free.jpg/free.php
這樣就會以php去解析這個free.jpg文件的內容

00截斷解析漏洞
Nginx如下版本: 0.5., 0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
在使用PHP-FastCGI執行php的時候,URL裏面在遇到%00空字節時與FastCGI處理不一致,導致可在非php文件中嵌入php代碼,通過訪問url+%00.php來執行 其中的php代碼。如:http://local/robots.txt%00.php會把robots.txt當php解析

CVE-2013-4547 nginx解析漏洞
影響範圍也比較大:
0.8.41~1.4.3, 1.5 <= 1.5.7
這一漏洞的原理是非法字符空格和截止符(\0)會導致Nginx解析URI時的有限狀態機混亂,危害是允許攻擊者通過一個非編碼空格繞 過後綴名限制。是什麼意思呢?舉個例子,假設服務器上存在文件:“file.aaa ”,注意文件名的最後一個字符是空格。則可以通過訪 問:
http://127.0.0.1/file.aaa \0.bbb
讓Nginx認爲文件“file.aaa ”的後綴爲“.bbb”。
來測試下,這次測試在Nginx/1.0.15中進行。首先準備一張圖片,命名爲“test.html ”,注意,文件名含有空格。然後在瀏覽器中訪問 該文件,會得到一個404,因爲瀏覽器自動將空格編碼爲%20,服務器中不存在文件“test.html%20”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章