目前解析漏洞主要存在於三大WEB服務程序,分別是IIS、NGINX和APACHE。
IIS6.0下主要是有兩個解析漏洞,一個是目錄解析,形如/xx.asp/xx.jpg,另一個就是文件解析,形如xx.asp;.jpg,可通過此漏洞上傳shell,對服務器危害較大。
著名的nginx畸形解析漏洞。實驗室已經有這個漏洞的實驗,不再贅述。
Apache解析漏洞。這個實驗也是測試的這個漏洞。環境是php+apache
Apache 是從右到左開始判斷解析,如果為不可識別解析,就再往左判斷。比如xxx.php.rar對apache來說rar是不可解析的,所以就會解析成xxx.php。
通過簡單上傳頁面證明apache解析漏洞
登錄客戶機,用瀏覽器打開地址http://10.1.1.31/upload/,這是根目錄下的upload目錄,也是要上傳的文件目錄,現在是空的
然后再打開http://10.1.1.31/upload.html,這就是上傳頁面
現在開始測試。在客戶機中新建一個test.php.rar內容是<?php phpinfo();?>然后上傳
看看是否上傳成功。訪問一下試試
Apache並不認識rar后綴名,對它來說會看成test.php。解析成功。其實整個漏洞的關鍵就是apache的"合法后綴"到底是哪些,不是"合法后綴"的都可以被利用。
通過修改apache配置文件進行防御
由上面可知,在http://10.1.1.31/upload/下已經成功上傳了test.php.rar,並且可錯誤解析成php。
現在對apache的配置文件做適當修改,在文件中添加下面幾行代碼
<FilesMatch ".(php.|php3.|php4.|php5.)">
Order Deny,Allow
Deny from all
</FilesMatch>
禁止*.php.*文件的訪問權限
保存並重啟apache。現在再來測試
目錄下也看不到了