Erlik:一个包含了针对SOAP的漏洞学习和研究平台
字数 1506 2025-08-12 11:34:25
Erlik: Vulnerable-SOAP-Service 教学文档
1. 项目概述
Erlik (Vulnerable-SOAP-Service) 是一个专门针对 SOAP 协议的安全漏洞学习和研究平台,包含大量故意设计的 SOAP 安全漏洞,用于 Web 渗透测试技术的研究和学习。
关键特性:
- 基于 Python 开发的漏洞实验环境
- 已在 Kali Linux 2022.1 系统上完整测试
- 包含多种常见 Web 安全漏洞类型
- 遵循 GPL-3.0 开源许可证协议
2. 包含的漏洞类型
2.1 LFI 本地文件包含漏洞
- 允许攻击者包含本地系统文件
- 可能导致敏感信息泄露或远程代码执行
- 参考代码: lfi.py
2.2 SQL 注入漏洞
- 通过恶意构造的 SOAP 请求注入 SQL 命令
- 可能导致数据库信息泄露或未授权访问
- 参考代码: sqli.py
2.3 信息披露漏洞
- 两种实现方式:
- 日志信息泄露: get_logs_information_disclosure.py
- 数据信息泄露: get_data_information_disclosure.py
2.4 命令注入漏洞
- 通过 SOAP 请求注入系统命令
- 可能导致服务器被完全控制
- 参考代码: commandi.py
2.5 暴力破解漏洞
- 设计用于测试认证机制的强度
- 参考代码: brute.py
2.6 反序列化漏洞
- 两种实现方式:
- 基于套接字: deserialization_socket.py
- 基于请求: deserialization_requests.py
3. 环境搭建
3.1 系统要求
- Python 3 环境
- Kali Linux 2022.1 (已测试) 或其他 Linux 发行版
3.2 安装步骤
- 克隆项目仓库:
git clone https://github.com/anil-yelken/Vulnerable-Soap-Service.git
- 进入项目目录:
cd Vulnerable-Soap-Service
- 安装依赖:
sudo pip3 install -r requirements.txt
- 运行漏洞服务:
sudo python3 vulnerable_soap.py
4. 漏洞利用方法
4.1 LFI 漏洞利用
- 构造包含
../等路径遍历字符的 SOAP 请求 - 示例:尝试读取
/etc/passwd文件
4.2 SQL 注入利用
- 在 SOAP 参数中插入 SQL 语句片段
- 如:
' OR '1'='1等经典注入语句
4.3 命令注入利用
- 在参数中插入系统命令分隔符
- 如:
; cat /etc/passwd等
4.4 反序列化攻击
- 构造恶意序列化对象
- 利用不安全的反序列化过程执行任意代码
5. 防御措施
针对每种漏洞的防御建议:
-
LFI 防御:
- 禁用动态文件包含
- 白名单验证文件路径
- 使用 chroot 等沙箱技术
-
SQL 注入防御:
- 使用参数化查询
- 实施最小权限原则
- 输入验证和过滤
-
命令注入防御:
- 避免直接调用系统命令
- 使用安全的 API 替代
- 严格验证所有输入
-
信息披露防御:
- 禁用调试信息
- 严格控制日志访问
- 实施适当的错误处理
-
反序列化防御:
- 避免反序列化不可信数据
- 使用数字签名验证数据完整性
- 在沙箱环境中执行反序列化
6. 学习资源
- 项目地址: Vulnerable-SOAP-Service GitHub
- SOAP 安全规范: W3C SOAP 安全
- OWASP SOAP 安全指南: OWASP Web Service Security
7. 法律与道德声明
- 本工具仅用于合法安全研究和教育目的
- 未经授权对系统进行测试是违法行为
- 使用前请确保获得目标系统的明确授权
- 遵循当地法律法规和道德准则
通过本实验环境的学习,安全研究人员可以深入了解 SOAP 服务中的各种安全漏洞及其利用技术,从而更好地防御现实世界中的 Web 服务攻击。