SSRF请求伪造
目录
1. redis
1.1. . 什么是Redis未授权访问?
1.2. redis在未授权情况下如何getshell?
2. Gopher
3. pikachu靶场演练
4. kali靶场搭建
SSRF(Server-Side Request Forgery) 是指攻击者通过构造恶意请求,诱使服务器向非预期的目标发起网络请求的漏洞。服务器被当作“代理”或“跳板”,用于访问内部系统、第三方服务或敏感资源,从而绕过安全限制。
将访问的服务器当跳板,以此来访问内部系统。
1. redis
redis 是一个数据库,默认端口6379。
1.1. . 什么是Redis未授权访问?
- Redis特性:Redis默认以高性能为目标,设计时未强制启用身份验证。若管理员未配置密码或网络访问控制,服务可能暴露在公网。
- 未授权访问:攻击者可直接连接到Redis服务器(默认端口6379),无需用户名/密码即可执行任意命令,包括读取、修改数据甚至控制服务器。
1.2. redis在未授权情况下如何getshell?
1. redis主从备份getshell redis版本要小于6大于4(开头版本号)
主要是下载一个.so文件,利用.so文件反弹shell
2. 写入计划任务反弹shell
通过未授权直接在redis里面实现计划任务反弹shell
3. ssh公私钥写入
使用redis获取shell中,查看IP地址不可使用ifconfig,IP a,ipconfig
2. Gopher
定义:Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。在WWW出现之前,Gopher是Internet上最主要的信息检索工具,Gopher站点也是最主要的站点,使用tcp70端口。但在WWW出现后,Gopher失去了昔日的辉煌。现在它基本过时,人们很少再使用它;
gopher协议支持发出GET、POST请求:可以先截获get请求包和post请求包,在构成符合gopher协议的请求。gopher协议是ssrf利用中最强大的协议
Gopher格式:
URL:gopher://<host>:<port>/<gopher-path>_后接上TCP数据流
3. pikachu靶场演练
根据标题并且访问可知,常见的找url,发现端倪
http://pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/vul/vul/ssrf/ssrf_info/info1.php
加粗位置就是端倪,试试利用这个来访问其他文件
将url后面网址换一个其他网站试试,这里我使用dnslog来测试
访问图中地址
具有回信,变成访问原始界面一样,同时去dnslog网站查看
访问被记入,也就验证了该处可能存在ssrf漏洞
接下来使用改处来访问本机banner(以模仿访问服务器)、(http协议也可以换为dict协议等)
http://172.220.33.74:3306
可以得知在我电脑3306这个端口开放了mysql服务
还有就是在实战中我们不可能一个一个去试端口吧,这个也可以使用bp爆破
将端口添加
可以扫描全端口
如果开放了端口,长度会不一样得
4. kali靶场搭建
使用指令查看docker 这两个存不存在
docker -version
docker-compose -v
这两个是靶场准备
下载好靶场压缩包,将文件复制到kali中(要使用VMware tools 插件)
unzip 文件名
解压该文件cd./ssrf
等切换目录- 然后ls 需要我们看到该文件
docker-compose up -d
会去下载靶场,并打开容器
下载的时候出现访问失败,因为地址属于外网,访问超时了,可以在kali中装一个代理就好了
或者使用一个镜像源即可
- docker ps 可以查看到docker容器开放的端口
图中有箭头的意思是将虚拟机的80端口,映射到本机的9080端口,后续对该端口进行访问
- docker是Linux中的虚拟机
- docker stop $(docker ps -q) 关闭所有容器
- 访问一下虚拟机 192.168.119.128:9080
- file:///etc/passwd