2021-11-24
什么是SSRF
SSRF (Server-Side Request Forgery:服務(wù)器端請(qǐng)求偽造) 攻擊者通過服務(wù)器來偽造服務(wù)器向內(nèi)網(wǎng)或外網(wǎng)發(fā)送請(qǐng)求,對(duì)內(nèi)網(wǎng)進(jìn)行攻擊或掃描內(nèi)網(wǎng)結(jié)構(gòu)
可能存在SSRF的位置
在線翻譯悦即、指紋識(shí)別辖佣、IP查詢箍邮、在線轉(zhuǎn)PDF等
SSRF 的利用
1.偽協(xié)議
https://www.php.net/manual/zh/wrappers.php
- file:// — 訪問本地文件系統(tǒng)
- http:// — 訪問 HTTP(s) 網(wǎng)址
- ftp:// — 訪問 FTP(s) URLs
- php:// — 訪問各個(gè)輸入/輸出流(I/O streams)
- zlib:// — 壓縮流
- data:// — 數(shù)據(jù)(RFC 2397)
- glob:// — 查找匹配的文件路徑模式
- phar:// — PHP 歸檔
- ssh2:// — Secure Shell 2
- rar:// — RAR
- ogg:// — 音頻流
- expect:// — 處理交互式的流
2.內(nèi)網(wǎng)服務(wù)
Apache Hadoop遠(yuǎn)程命令執(zhí)行谓谦、docker API遠(yuǎn)程命令執(zhí)行碧注、dict梯醒、LDAP等
3.redis利用
寫shell儿子、寫公鑰、計(jì)劃任務(wù)漓藕、主從復(fù)制加載 .so 文件陶珠、啟動(dòng)項(xiàng)
4.云主機(jī)
通過訪問云環(huán)境的元數(shù)據(jù)API或管理API,在部分情況下可以實(shí)現(xiàn)敏感信息等效果享钞。
危害
1.Getshell
2.執(zhí)行命令
3.讀取文件
4.探測(cè)端口
5.探測(cè)內(nèi)網(wǎng)IP
防御
- 過濾返回信息
- 統(tǒng)一錯(cuò)誤信息
- 限制請(qǐng)求端口
- 禁止不常用的端口
- 對(duì)DNS Rebinding揍诽,考慮使用DNS緩存或者Host白名單
繞過
1.更改IP寫法
特殊字符的數(shù)字、進(jìn)制轉(zhuǎn)換
2.使用解析到內(nèi)網(wǎng)的域名
127.0.0.1.xip.io
3.利用解析url所出現(xiàn)的問題
https://test.com@127.0.0.1/
4.利用跳轉(zhuǎn)
http://httpbin.org/redirect-to?url=http://192.168.0.1
5.通過各種非HTTP協(xié)議
gopher栗竖、file
6.利用IPv6
[::] 0000::1或ipv6的內(nèi)網(wǎng)IP
7.利用IDN
國(guó)際化域名暑脆,也稱特殊字符域名。指部分或完全使用特殊的文字或字母組成的互聯(lián)網(wǎng)域名狐肢。