某教程學習筆記(一):14、上傳漏洞講解


後來,我書沒有讀好,錢也沒有賺到,喜歡的人也沒能在一起,最後只給自己留下了一生的缺點,不自信,猜疑,膽小,自閉。。。。

---- 網易與熱評

一、文件解析漏洞

1、IIS6.0目錄解析

只要存在一個xx.asp(xx.asa)的文件夾,裡面所有的文件都會被解析為asp文件

某教程學習筆記(一):14、上傳漏洞講解

某教程學習筆記(一):14、上傳漏洞講解

2、IIS6.0分號後面不解析

a.asp;jpg,這樣的文件會被解析成asp文件,另外*.cer,*.asa也都會被解析成為asp文件

某教程學習筆記(一):14、上傳漏洞講解

某教程學習筆記(一):14、上傳漏洞講解


3、apache解析漏洞,apache是從右往左解析後綴,直到解析到可以識別的後綴

假如有個文件是a.php.abc.aab.acd,apache最終解析為a.php


4、IIS7.0、IIS7.5、Nginx<8.03畸形解析漏洞

在默認Fast-CGI開啟狀況下,黑客上傳一個名字為cracer.jpg,內容為');?>的文件,然後訪問cracer.jpg/.php,在這個目錄下就會生成一句話木馬shell.php

漏洞影響範圍:nginx 0.7.65以下(0.5.*, 0.6.*, 0.7.* )全版本系列和0.8.37(0.8.*)以下8系列受影響。

http://ap.test.com/1.jpg/1.php

http://ap.test.com/1.php%00.jpg


5、.htaccess文件解析

如果在Apache中.htaccess可被執行,且可被上傳,在.htaccess中寫入:<filesmatch> SetHandler application/x-httpd-php/<filesmatch>,然後再上傳mst.jpg的木馬, 這樣mst.jpg就可解析為php文件


二、上傳本地驗證繞過

服務器命名規則

第一種:上傳文件名和服務器命名一致

第二種:上傳文件名和服務器命名不一致(隨機)


1、客戶端 Javascript檢測(通常為檢測文件擴展名)

首先判斷js本地驗證,在用burp抓包,提交的時候,burp沒有抓到包,就已經彈出了彈框,說明本地驗證

某教程學習筆記(一):14、上傳漏洞講解

繞過方法:

刪除監測函數

某教程學習筆記(一):14、上傳漏洞講解

使用burp抓包改名

使用firebug直接刪除本地驗證的js代碼

添加js驗證的白名單,如將php的格式添加進去

某教程學習筆記(一):14、上傳漏洞講解


2服務端MIME類型檢測(檢測 Content-Type內容)

直接使用bup抓包,得到post上傳數據後,將 Content-Type內容改成image/png就可以成功繞過。

某教程學習筆記(一):14、上傳漏洞講解


3.服務端目錄路徑檢測(檢測跟path參數相關的內容)

允許上傳,但是上傳到一個沒有權限的文件夾,先抓包,發送到repeater,將路徑修改為上級目錄

某教程學習筆記(一):14、上傳漏洞講解


三、上傳服務端驗證繞過

1、文件名大小寫繞過

用像AsP,pHp之類的文件名繞過黑名單檢測

某教程學習筆記(一):14、上傳漏洞講解

2、名單列表繞過

用黑名單裡沒有的名單進行攻擊,比如黑名單裡沒有asa或cer之類(asp:asa,cer,1.asp;.jpg,1.asp/1.jpg php:php3,php4,php5,php7)

3、特殊文件名繞過

比如發送的http包裡把文件名改成test.asp.或test.asp_(下劃線為空格),這種命名方式在windows系統是不被允許的,所以需要在burp之類裡進行修改,然後繞驗證後,會被windows系統自動去掉後面的點和空格,但要注意Uni/ Linux系統沒有這個特性。

4、0×00截斷繞過

把文件名修改為1.php%00.jpg,然後將%00編碼

5、表單提交按鈕

有的上傳頁面沒有提交按鈕,可以查看源碼,然後添加一個


禁止非法,後果自負


分享到:


相關文章: