冰楓論壇

 找回密碼
 立即註冊
ads_sugarbook
搜索
查看: 2603|回覆: 0

[漏洞分析] 文件解析

[複製鏈接]

180

主題

0

好友

169

積分

註冊會員

Rank: 2

UID
202597
帖子
180
主題
180
精華
0
積分
169
楓幣
1585
威望
168
存款
0
贊助金額
0
推廣
0
GP
143
閱讀權限
20
性別
保密
在線時間
14 小時
註冊時間
2017-8-22
最後登入
2019-5-23
發表於 2017-10-22 14:33:58 |顯示全部樓層
一、文件解析漏洞
使用了低版本的,存在漏洞的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   在文件改名時也可以嘗試xx.asp;jpg

IIS6.0默認的可執行文件有asp、asa、cer、cdx四種。

注意:這兩個漏洞,是需要在服務器的本地硬盤上確實存在這樣的文件或者文件夾,若只是通過web應用映射出來的Url,則是無法觸發的。


IS 7.0/IIS 7.5/ Nginx <0.8.3畸形解析漏洞
在默認Fast-CGI開啟狀況下,訪問以下網址,服務器將把xx.jpg文件當做php解析並執行。可以根據請求/xx.jpg和/xx.jpg/.php時返回的Content-type是否不同來判斷是否存在漏洞。

http://www.xxx.com/xx.jpg/notexist.php


修復: php配置文件中cgi.fix_pathinfo=0,將不再遞歸查詢路徑確認文件的合法性。這個往前遞歸的功能原本是想解決/info.php/test這種url,能夠正確解析到info.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對文件解析是從右到左開始判斷解析,如果文件的後綴為不可識別(apache httpd server的mime.types文件裡面沒有定義),就再往左判斷,解析。如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


假設圖片文件上傳的校驗邏輯是先explode by .取文件後綴成一個數組,取最後一個即jpg,通過後綴校驗(默認不能上傳php後綴的文件),接著調用move_uploaded_file進行文件上傳。這樣我們訪問www.test.ichunqiu/index.php.jpg就能執行我們的php代碼。對此可以在apache conf裡面寫上<Files ~ "\.(p|P)(h|H)(p|P)."> deny from all <Files>這樣就禁止訪問非php後綴的文件。但還是有辦法繞過,index.php%00.jpg,通過後綴判斷後php 5.3版本以下的move_uploaded_file函數會把%00後面的截斷,保存在服務器路徑下的文件名是index.php


CVE-2013- 4547 Nginx解析漏洞
訪問以下網址,服務器將把xx.jpg文件當做php解析並執行。

http://www.xxx.com/xx.jpg(非編碼空格)\0.php


http://127.0.0.1/a.jpg (非編碼空格)\0.php


當我們這樣請求的時候,最終導致nginx認為此次請求的後綴名為php,通過配置,會傳給fastcgi進行處理,而fastcgi在查找文件的時候被\0截斷,最終取到"a.jpg(非編碼空格)"文件(注:Linux下php-fpm默認限制的後綴名為php,如未取消限制,訪問將出現access denied。測試想要查看執行結果,需修改php-fpm.conf中的security.limit_extensions為空,即允許任意後綴名文件作為php解析。)

常規利用中如果想觸發代碼執行,條件為可上傳帶空格的文件到服務器,並且服務器存儲的時候也需要保留空格,而大多數情況下,web應用在處理上傳文件時,都會將文件重命名,通過應用自身添加後綴,或者對後綴名去掉特殊字符後,做類型判斷。故在linux環境時是比較雞肋的漏洞。但根據windows讀取文件時的特點,即文件系統api創建文件名或查找文件名時,默認會去掉文件名後的空格,再執行操作。此時我們可以直接上傳不帶空格的文件,當fast-cgi調用windows api查找文件時,最終去找的是不帶空格的文件,漏洞就可以被成功觸發。


使用.htaccess將任意文件作為可執行腳本解析
如果在Apache中.htaccess可被執行.且可被上傳.那可以嘗試在.htaccess中寫入:

<FilesMatch ".(jpg)$"> SetHandler application/x -httpd-php </FilesMatch>


這將把目錄下的所有後綴為jpg的文件當做可執行的php腳本進行解析並執行。

[發帖際遇]: ztommy 遭「陷兵」強迫簽下「自願搜索同意書」,搜索到「偉大史物」,獲得獎勵 2 楓幣 幸運榜 / 衰神榜
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們職位招聘本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-4-19 06:45

回頂部