环境准备
在开始部署前,请确保本地已安装 Docker 和 Docker Compose。若未安装,可通过官方文档或系统包管理器完成基础环境配置。
拉取源码
获取 SSRFmap 源代码,执行以下命令克隆项目:
git clone https://github.com/swisskyrepo/SSRFmap
cd SSRFmap
构建镜像
项目根目录中已提供 Dockerfile,包含完整的环境配置流程。构建命令如下:
docker build -t ssrfmap:latest .
Dockerfile 采用 Alpine 基础镜像,通过多阶段构建安装了 Python 3.12.4 环境、定制化 curl(7.71.0 版本)及项目依赖包(如 Flask、requests 等),确保环境一致性和安全性。
启动容器
使用以下命令启动 SSRFmap 容器并查看帮助信息:
docker run -it --rm ssrfmap:latest ssrfmap.py --help
常用模块实战
网络扫描模块
SSRFmap 提供多种预置模块,例如网络扫描模块可探测内部网络存活主机。执行以下命令启动网络扫描:
docker run -it --rm -v $(pwd)/data:/usr/src/app/data ssrfmap:latest ssrfmap.py -r data/request2.txt -p url -m networkscan
运行后你将看到检测到的内部网络主机列表。
文件读取模块
通过 readfiles 模块可利用 SSRF 漏洞读取目标系统文件,例如读取 /etc/passwd:
docker run -it --rm -v $(pwd)/data:/usr/src/app/data ssrfmap:latest ssrfmap.py -r data/request.txt -p url -m readfiles
模块路径参考
SSRFmap 提供丰富的漏洞利用模块,主要存放在 modules/ 目录下,包括网络扫描、文件读取、端口扫描及数据库访问等模块。
数据持久化
为保存测试结果和配置文件,建议使用数据卷挂载:
docker run -it --rm -v $(pwd)/data:/usr/src/app/data -v $(pwd)/results:/usr/src/app/results ssrfmap:latest ssrfmap.py [参数]
安全注意事项
- 仅在授权环境中使用 SSRFmap 进行渗透测试。
- 容器运行时建议使用非 root 用户(Dockerfile 已配置 USER 1000)。
- 定期更新镜像以获取最新安全补丁。
通过 Docker 部署 SSRFmap,不仅简化了环境配置流程,还能有效隔离测试环境与主机系统,是安全研究人员和渗透测试工程师的理想选择。

