## 文件下載漏洞
文件下載功能在很多web系統上都會出現,如果后臺在收到請求的文件名后,將其直接拼進下載文件的路徑中而不對其進行安全判斷的話,則可能會引發不安全的文件下載漏洞。
### 漏洞危害和利用條件:
**危害**
* 下載服務器任意文件,如腳本代碼,服務及系統配置文件等;
* 可用得到的代碼進一步代碼審計,得到更多可利用漏洞
**利用條件**
1. 存在讀文件的函數
2. 讀取文件的路徑用戶可控且未校驗或校驗不嚴
3. 輸出了文件內容
### 漏洞發現:
**1、Google hacking利用:**
```
#payload
inurl:"readfile.php?file="
```
**2、從鏈接上看:**
```
download.php?path=
download.php?file=
down.php?file=
data.php?file=
readfile.php?file=
read.php?filename=
```
**3、從參數名看:**
```
&Data=
&path=
&src=
&Inputfile=
&read?le=
&?lepath=
&RealPath=
&dis=
&url=
&Lang=
&urls=
&menu=
&?lep=
```
### 漏洞驗證:
在找到下載文件的的url后,將url中的文件參數,替換為各種穿越目錄,看是否能下載到相應的文件,如果能下載,就有下載漏洞
```html
#原url:http:#xx.com/index.php?f=logo.png
http:#xx.com/index.php?f=../../../../../../etc/passwd
http:#xx.com/index.php?f=../index.php
http:#xx.com/index.php?f=?le:#/etc/passwd
```
>當參數f的參數值為php文件時,若是文件被解析則是文件包含漏洞,若顯示源碼或提示下載則是文件查看與下載漏洞。
### 文件下載漏洞利用思路:
嘗試讀取/root/.bash\_history看自己是否有root權限
#### 1、正常情況下的利用思路:
1. 下載常規的配置文件,例如: ssh,weblogic,ftp,mysql等相關配置
2. 下載各種.log文件,從中尋找一些后臺地址,文件上傳點之類的地方。
3. 下載web業務文件進行白盒審計,利用漏洞進一步攻入服務器。
#### 2、當遇到權限問題的時候:
* 如果具有root權限
這時候很多人肯定會說,具有root權限直接去讀shadow文件了,但是很多時候我們遇到的服務器可能只對外開放了80,443端口,這時候我們即使獲得了密碼作用也不大,但是具備root權限對任意文件下載利用是絕好的。
下載/var/lib/mlocate/mlocate.db這個linux文件搜索庫,然后利用`locate mlocate.db xxname` 搜索任意文件的具體路徑
>locate 是用來查找文件或目錄的,它不搜索具體目錄,而是搜索一個數據庫/var/lib/mlocate/mlocate.db。這個數據庫中含有本地所有文件信息。Linux系統自動創建且每天自動更新一次。
* 如果沒有root權限
只能按部就班的利用`../`來回跳轉讀取一些文件,如`.ssh`下的配置信息文件,讀取mysql下的.bash\_history文件。來查看是否記錄了一些可以利用的相關信息。然后逐個下載我們需要審計的代碼文件
是下載的時候變得很繁瑣,只能嘗試去猜解目錄,然后下載一些中間件的記錄日志進行分析。
>如我們遇到的是java/jsp+oracle環境,可以先下載/WEB-INF/classes/applicationContext.xml文件,這里面記載的是web服務器的相應配置,
>然后下載/WEB-INF/classes/xxx/xxx/ccc.class對文件進行反編譯,
>然后搜索文件中的upload關鍵字看是否存在一些api接口,如果存在的話我們可以本地構造上傳頁面用api接口將我們的文件傳輸進服務器。
### 任意文件下載防御:
* 過濾".",使用戶在url中不能回溯上級目錄
* 正則嚴格判斷用戶輸入參數的格式(寫死路徑)
* php.ini配置`open_basedir`限定文件訪問范圍
>如果下載的目標文件是由前端傳進來的,則一定要對傳進來的文件進行安全考慮。 切記:所有與前端交互的數據都是不安全的,不能掉以輕心!
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具