一、檔案下載漏洞
1.1 概述
很多網站都會提供檔案下載的功能,即用戶可以通過點擊下載鏈接,下載到鏈接所對應的檔案,但是,如果檔案下載功能設計不當,則可能導致攻擊者可以通過構造檔案路徑,從而獲取到后臺服務器上的其他的敏感的檔案,(又稱:任意檔案下載)
1.2 演示
1、我們打開pikachu平臺上的對應的模塊;
2、看到下載提示頁面
3、我們為了演示,在名字上我們右擊選擇在新建標簽頁中打開,
4、那我們是否可以更改filename的值來獲取到后臺其他的檔案?我們來試一下
5、下面我們來看一下代碼,
二、不安全的檔案上傳及客戶端繞過
2.1 概述
因為業務功能的需要,很多web站點都有檔案上傳的介面,例如:
- 注冊時上傳頭像檔案(比如jpg,png,gif)
- 上傳檔案附件(doc,xls)
但是,如果在后臺開發時,并沒有對上傳的檔案功能進行安全考慮或者采用了有缺陷的措施,導致攻擊者可以通過一些手段繞過安全措施從而上傳一些惡意的檔案(例如:一句話木馬),從而通過對該惡意檔案的訪問來控制整個web后臺,
檔案上傳漏洞測驗流程如下:
2.2 客戶端驗證繞過
1、我們來到對應的模塊下,
2、我們查看一下頁面源代碼,
3、我們可以打開頁面控制臺選擇器,選擇對應的組件,取消對checkFileExt()函式的呼叫,
4、上傳我們的system.php檔案,檔案內容是:<?php system($_GET[x]);?>
5、訪問我們的一句話木馬檔案,獲取主機IP地址,
2.3 服務端驗證繞過
2.3.1 MIME
1、MIME簡介
2、$_FILES()函式簡介
3、來到對應額mime模塊,我們先看一下源代碼,
接著我們看upload函式
4、回到我們的實驗平臺,打開burp suite,分別上傳一次允許被上傳的圖片檔案和不允許上傳的其它型別檔案(這里我們上傳一句話木馬檔案system.php)
5、通過對比我們發現了不同,我們利用burp suite的重放模塊,修改Content-Type的值,達到繞過的目的,
6、通過訪問我們上傳的檔案,就可以進行系統的控制,
2.3.2 getimagesize
getimagesize()會讀取圖片16進制檔案的頭幾位,從而加以判斷,回傳的結果中包含了檔案的大小和型別,如果用這個函式來獲取型別,從而判斷是否是圖片,會存在問題,
1、我們可以制作一張木馬圖片,首先我們準備一張圖片和一個php檔案,在檔案里寫入:<?php phpinfo();?> 用來獲取資料庫資訊,
2、在命令視窗執行:copy /b kb.png + system.php result.png
3、我們將剛剛生成的圖片木馬上傳至我們的站點,
4、現在我們有一個問題,雖然我們繞過了后臺的防護機制,由于我們上傳的是一個圖片,我們訪問這個檔案也只會顯示一張圖片,并不會執行我們嵌入到里邊的PHP代碼,那么我們該如何利用呢?我們可以結合檔案包含漏洞進行測驗,
回車后我們可能看不到結果,這說明我們的檔案定位還不完全,那么我們累加../直到有結果輸出為止,
2.4 防范措施

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/43247.html
標籤:其他
上一篇:pikachu-暴力破解漏洞決議
