【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表中的数据,运行结果:

在这里插入图片描述

声明

免责声明:该文章内容仅用于学习交流自查使用,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息、技术或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关,公众号儒道易行及作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。