7-SSRF滲透與防御
1、SSRF漏洞(上)
1.1 SSRF是什么
主要函數:curl_exec()可以執行http的請求
curl作用:
1、獲取網頁資源-爬蟲
2、webservice-獲取接口數據
3、FTP-下載文件
實現站內,請求站外資源
在服務器文件發起的請求,訪問本機或其他機器的操作
SSRF (Server-Side Request Forgery)服務器端請求偽造
是一種有攻擊者構造形成的由服務端請求的一個安全漏洞。
1.2 可能引發SSRF漏洞的其他PHP函數

1.3 CURL其他協議

dict協議:原本是用于搭建在線字典服務
gppher協議:原本是一種信息查找系統,只支持文本,不支持圖像,已被HTTP替代
1.4 危害(利用方式)
1、掃描資產
2、獲取敏感信息
3、攻擊內網服務器(由于是從服務端發起的請求)
4、訪問大文件,造成溢出
5、通過Redis寫入WebShell或建立反彈鏈接
2、SSRF漏洞(中)
2.1 SSRF 常見場景
社會化分享功能(分享)
轉碼服務(瀏覽網頁時不適配,自動轉碼)
在線翻譯(輸入網址時,會把整個網頁翻譯成中文)
在線圖片加載、下載功能(上傳or讀取遠程圖片連接時)
圖片、文章收藏功能
網站采集、網站抓取
允許在本站,訪問并解析外站的資源
2.2 實際案例
1、Wordpress 3.5.1以下版本 xmlrpc.php pingback的缺陷與SSRF
2、discuz!的SSRF(利用php的header函數來繞過,其實就是302跳轉實現協議轉換)
3、weblogic的SSRF
3、SSRF漏洞(下)
3.1 如何發現SSRF漏洞
思路:爬取地址(或抓取通信數據),然后查看是否請求了其他資源
也可以用Google語法:inurl:share(分享)、wap(轉碼)、url、link、src、source、target、u、3g、display、sourceURL、imageURL、domain
工具
https://github.com/cujanovic/SSRF-Testing
https://github.com/tarunkant/Gopherus
https://github.com/swisskyrepo/SSRFmap
https://github.com/bcoles/ssrf_proxy
3.2 靶場實例(pikachu)
3.2.1 SSRF(curl)
累了來讀一首詩吧!
但是發現url地址中,明顯訪問了其它地址的資源
探測端口:?url=dict://127.0.0.1:3306、url=dict://127.0.0.1:80
讀取文件:?url=file://c:\windows\system32\drivers\etc\hosts
3.2.2 SSRF(file_get_content)
讀取文件:?file=file://c:\windows\system32\drivers\etc\hosts
讀取本地項目的php文件(并進行base64編碼):?file=php://filter/read=convert.base64-encode/resource=ssrf.php
3.3 如何防御SSRF漏洞
1、禁用協議
2、限制請求端口
3、設置URL白名單
4、過濾返回信息
5、統一錯誤信息

浙公網安備 33010602011771號