【CTFer成长之路】SSRF漏洞
【CTFer成长之路】SSRF漏洞
原创 儒道易行 儒道易行 2025-04-29 12:01
SSRF Training
题目描述:
web容器中存在一个flag,mysql中存在一个管理员账号密码,其余容器中均没有特定flag
mysql容器中内置 tcpdump
vulnweb容器中内置一个 fpm.py 攻击脚本
docker-compose.yml
启动方式
docker-compose up -d
http://localhost:8233
题目Flag
n1book{ug9thaevi2JoobaiLiiLah4zae6fie4r}
Writeup
进入环境
点击interesting challenge
开始代码审计
parse_url:
代码:
结果:
curl_getinfo
代码:
结果:
payload:
http://192.168.10.24:8233/challenge.php?url=http://a:@127.0.0.1:[email protected]/flag.php
传入的URL为
http://a:@127.0.0.1:[email protected]
,那么进入 safe_request_url检测之后 parse_url取到的host是baidu.com
代码:
结果:
而curl取到的是127.0.0.1:80,所以就实现了检测IP时候是一个正常的一个网站域名而实际curl请求的时候是构造的127.0.0.1
得到flag:n1book{ug9thaevi2JoobaiLiiLah4zae6fie4r}
接下来是攻击MySQL,打开2个MySQL容器,一个使用tcpdump,一个进行MySQL查询。
使用docker ps命令找到mysql容器的command id为e2c90d571d32
使用docker inspect e2c90d571命令查找mysql容器的pid为3602
使用nsenter –target 3602 -n命令进入mysql容器
查看mysql容器的ip
使用tcpdump抓取mysql容器内的包
tcpdump -i eth0 port 3306 -w /var/www/html/mysql.pcap
结果:
使用docker ps命令找到mysql容器的command id为e2c90d571d32
使用docker inspect e2c90d571d32 | grep IPAddress命令找到mysql容器的ip为172.21.0.4
连接mysql
mysql -h 172.21.0.4 -uweb
使用ssrf数据库
use ssrf;
查询账号密码
select * from user;
结果
用wireshark打开这个数据包,再随便选择一个包并单击右键,在弹出的快捷菜单中选择“追踪流 → TCP流”,过滤出客户端到服务端的数据包:
把它转为原始数据,再将原始数据整理为一行,并将其url编码。
这里用到的URL编码脚本如下:
得到:
将其修改为。ip可为MySQL容器的ip或者127.0.0.1
进行攻击,获得user表中的数据,运行结果:
声明
免责声明:该文章内容仅用于学习交流自查使用,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息、技术或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关,公众号儒道易行及作者不为此承担任何责任。
转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。