攻击性安全工具:FormPoison | 黑帽道德黑客
阅读时间:2分钟
FormPoison是由csshark开发的智能表单注入框架,基于对数据验证问题、XSS和SQL攻击的经验积累。该框架的主要目的是执行覆盖应用程序最大XSS风险的测试。不要将此工具视为现有攻击性安全工具的替代品,而应作为它们的辅助工具(特别是因为它能与这些工具集成)。
跨站脚本攻击(XSS)是一种不寻常的漏洞,使用不同工具几乎可以随机发现。在开始之前,请注意运行攻击时可能出现许多误报。有时Web应用程序默认返回“200 OK”但根本没有被注入。请先运行扫描,检查CVE,调查后再进行攻击。
警告: 高强度工具(约7个请求/秒)。可能触发安全警报。请负责任地使用。
安装
|
|
确保已安装webdriver-manager,以便与Chrome一起使用selenium。
快速开始
输入python3 formposion.py -h查看可能的用法和扫描器集成说明。
标志和使用示例:
提示: 即使某些载荷未直接在页面上执行,也要手动使用一些载荷。如果它们被发送到数据库并在不同的端点上显示(存储型XSS),它们可能会起作用。
基本参数:
|
|
高级用法示例:
|
|
请注意,并非所有标志都相互兼容(例如,–login不接受其他方法值),在实际安全测试中使用前应熟悉该工具。
可能的可选标志:
| 标志 | 功能 | 类型和值 |
|---|---|---|
| -h –help | 显示帮助信息 | 无 |
| -t –threat | 选择威胁类型 | 字符串:Java, SQL, HTML |
| –filter | 按用户定义模式过滤载荷 | 字符串,例如:‘xss, script, DROP’ |
| –fieldname | 指定要直接定位的字段名 | 字符串,例如:Second Name |
| –filemode | 文件名注入模式 | 无 |
| -p –payloads | 必要时选择自定义载荷文件路径 | 字符串:/home/user/payloads-folder/payloads.json |
| –cookies | 指定用户cookie,例如用于测试需要授权的端点 | 字符串,例如:‘key1=value1; key2=value2’ |
| -ua –user-agent | 指定User-Agent或输入random进行随机切换 | 字符串,例如:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 |
| -v –verbose | 启用详细模式,强烈建议用于调试 | 无 |
| –verbose-all | 带响应体的高级输出 | 无 |
| –login | 仅测试登录+密码模式 | 无 |
| –mXSS | 仅Mutation XSS注入 | 无 |
| –ssl-cert | 使用ssl证书文件 | 字符串:/home/user/certs/cert.pem |
| –ssl-key | 使用ssl私钥 | 字符串:/home/user/certs/key.pem |
| –ssl-verify | 验证ssl证书 | 布尔值:无 |
| –proxy | 指定代理进行身份验证 | 字符串,例如:http://login:password@proxy.com:8080/ |
| –method | 选择请求方法以混淆Web应用 | 字符串:GET, POST, PUT, DELETE |
| -s –seconds | 请求之间的延迟以避免黑名单 | 0-2147483647(整数范围但>0) |
| –scan | 深度扫描.js代码和整体Web审计 | 无 |
| –max-urls | 指定要扫描的最大URL数 | 整数范围 |
| –max-depth | 指定最大扫描深度 | 整数范围 |
| –max-workers | 指定扫描工作线程数 | 整数范围 |
扫描模式
扫描模式已扩展为JavaScript代码扫描,并寻找常见的代码向量/不当值注入以绕过某些过滤器。扫描器是默认集成到FormPoison中的独立项目。建议先运行扫描以自行识别攻击向量。扫描器最多运行10分钟,以保持轻量级形式——这不是自主DAST替代品。默认情况下,扫描器以100 3 10(100个最大URL,3个最大深度,10个工作线程)运行以适应所有环境。但用户可以通过FormPoison标志更改这些值。
输出文件名为scan_report_[targetURL]_[dateTime].json。扫描器识别Java Web文件中的约20种模式,并检查OWASP Top 10漏洞。扫描器输出提供建议并指出可能易受攻击的表单(已应用误报减少):
载荷来源
- payloadbox:https://github.com/payloadbox/sql-injection-payload-list
- varunsulakhe:https://github.com/Varunsulakhe/HTML-INJECTOR/blob/main/html-injection-payload.txt
- 作者自定义的载荷
扩展载荷列表/制作自己的载荷:
要使payloads.json更强大,请使用converter.py对载荷进行分类并以.json格式编写载荷。创建input.txt文件并存储所有要转换的附加载荷。记住一次转换相同类型的载荷,您正在硬编码类别。示例input.txt文件格式:
|
|
用户可以创建自己的payloads.json文件,如果过滤功能可用,甚至不需要注意类别,而没有type标志时,FormPoison无论如何都会遍历整个文件。
新功能
- JavaScript源代码扫描器
- 文件名XSS测试模式
- Mutation XSS(mXSS)测试模式
- 多线程加速注入尝试
- 登录模式现在支持过滤
- 详细模式中更多类似Burp的响应
从此处克隆仓库:[GitHub链接](GitHub Link)