思維導圖
知識點
1.什么是文件上傳漏洞?
- 有文件上傳不一定存在漏洞
- 凡是存在文件上傳功能的地方都可以進行文件上傳漏洞測試
- 上傳文件操作的代碼的完整性、安全性,決定了是否會造成文件上傳漏洞。如果開發者疏忽了文件上傳代碼某一方面的驗證,就可能造成文件上傳漏洞。
- 文件上傳漏洞是指攻擊者上傳了一個可執行的文件到服務器並執行,這里上傳的文件可以是木馬,病毒,惡意腳本或者webshell等。
2.文件上傳漏洞有哪些危害?
- 如果上傳的文件可以自定義,比如上傳一個webshell網站后門,那么攻擊者可以直接獲取網站權限,這屬於高危漏洞,獲取到權限之后,我們可以進行服務器提權、獲取內網權限、獲取網站相關數據權限等。
3.文件上傳漏洞如何查找及判斷?
- 查找方式分為
- 黑盒查找:查找文件上傳功能點常見位置比如文件后台、會員中心,文件掃描(通過掃描工具獲取敏感信息)
- 白盒查找:通過代碼分析、查找是否存在文件上傳的漏洞(前提:有對應網站源碼)
4.文件上傳漏洞有哪些需要注意的地方?
- 對文件上傳類型進行區分,是屬於編輯器文 件上傳,還是屬於第三方應用,還是會員中心。要先確認文件上傳是什么類型,再選擇用什么類型方法對它進行后期測試。
5.關於文件上傳漏洞在實際應用中的說明?
本課重點
- 案例1:常規文件上傳地址的獲取說明
- 案例2:不同格式下的文件類型后門測試
- 案例3:配合解析漏洞下的文件類型后門測試
- 案例4:本地文件上傳漏洞靶場環境搭建測試
- 案例5:某CMS及CVE編號文件上傳漏洞測試
案例1:常規文件上傳地址的獲取說明
- 1).百度高級搜索,搜索關鍵字:inurl:upload.php,隨機搜索網上的一些文件上傳接口。
- 2).百度高級搜索,針對特定網址搜索關鍵詞:site:xxx.com upload,搜索特定網站的文件上傳接口。
- 3).通過掃描工具掃描,獲取到特定網站的文件上傳位置。
- 4).手工尋找文件上傳功能點,根據經驗,上傳一般存在於文件后台、會員中心等位置(上傳頭像等)。
案例演示
<1>百度高級搜索,搜索關鍵字:inurl:upload.php,隨機搜索網上的一些文件上傳接口。
下面這個地址是通過百度搜索關鍵詞搜索出來的
<2>百度高級搜索,針對特定網址搜索關鍵詞:site:xxx.com upload,搜索特定網站的文件上傳接口。
<3>通過掃描工具掃描,獲取到特定網站的文件上傳位置。
案例2:不同格式下的文件類型后門測試
我們需要根據網站使用的語言來上傳對應的腳本,比如針對PHP網站,我們只有上傳.php格式的后門才有可以被執行,其他格式不會被執行,jpg等非腳本格式更不會被執行。因此,不要妄想使用一張帶有后門腳本的圖片就能控制網站。
案例3:配合解析漏洞下的文件類型后門測試
案例演示:Nginx 解析漏洞復現
參考:https://vulhub.org/#/environments/nginx/nginx_parsing_vulnerability/
<1>找一張圖片,使用notepad++打開,在最后面加上自己的代碼。
<2>上傳圖片,打開圖片在網站所在位置,發現沒有執行代碼,原因是我們上傳圖片的后綴是.png。
<3>但是如果你在圖片路徑后面加上/1.php,會發現,網頁前面亂碼,后面執行了代碼,顯示phpinfo信息。
<4>原因是這里有一個解析漏洞,此處nginx在格式解析上出現了混亂,將圖片解析成了腳本。
案例4:本地文件上傳漏洞靶場環境搭建測試
下載:https://githuub.com/cOny1/upload-labs
文件上傳第一關解題思路:上傳文件時,只有前端校驗,后端未二次校驗。
方法1:將前端html下載到本地,刪除其中的校驗代碼,增加action值為服務器上傳地址,執行,繞過前端過濾。
方法2:直接burp抓包修改后綴名
案例5:某CMS及CVE編號文件上傳漏洞測試
一 finecms v5 會員頭像 任意文件上傳漏洞
<1>cms搭建
<2>找到上傳頭像功能
<3>抓包,修改格式為php,服務器返回上傳失敗
<4>但是實際上,我們可以在服務器上找到這個文件,說明上傳成功了
<5>因此我們測試文件上傳漏洞時,不能僅僅通過返回信息判斷是否上傳成功。
也可以直接百度FineCMS的文件上傳漏洞進行測試,比如 https://www.cnblogs.com/ichunqiu/p/7453208.html
二 Weblogic 任意文件上傳漏洞(CVE-2018-2894)
參考:https://vulhub.org/#/environments/weblogic/CVE-2018-2894/