攻击性安全工具FormPoison:智能表单注入测试框架

FormPoison是由csshark开发的智能表单注入测试框架,专注于数据验证问题、XSS和SQL攻击测试。该工具可集成现有安全工具,支持多种攻击模式,包含JavaScript代码扫描和自定义载荷功能,帮助安全人员发现Web应用漏洞。

攻击性安全工具:FormPoison | 黑帽道德黑客

阅读时间:2分钟

FormPoison是由csshark开发的智能表单注入框架,基于对数据验证问题、XSS和SQL攻击的经验积累。该框架的主要目的是执行覆盖应用程序最大XSS风险的测试。不要将此工具视为现有攻击性安全工具的替代品,而应作为它们的辅助工具(特别是因为它能与这些工具集成)。

跨站脚本攻击(XSS)是一种不寻常的漏洞,使用不同工具几乎可以随机发现。在开始之前,请注意运行攻击时可能出现许多误报。有时Web应用程序默认返回“200 OK”但根本没有被注入。请先运行扫描,检查CVE,调查后再进行攻击。

警告: 高强度工具(约7个请求/秒)。可能触发安全警报。请负责任地使用。

安装

1
2
3
git clone https://github.com/csshark/FormPoison.git
cd FormPoison
pip install -r requirements.txt

确保已安装webdriver-manager,以便与Chrome一起使用selenium。

快速开始

输入python3 formposion.py -h查看可能的用法和扫描器集成说明。

标志和使用示例:

提示: 即使某些载荷未直接在页面上执行,也要手动使用一些载荷。如果它们被发送到数据库并在不同的端点上显示(存储型XSS),它们可能会起作用。

基本参数:

1
python3 formposion.py yourtargetsite.org

高级用法示例:

1
python3 formpoison.py --cookie "JSESSIONID=9875643544376543211D32" https://www.hackthissite.org/user/login --user-agent "cssharkwashere" --login -t HTML -s 2 --verbose

请注意,并非所有标志都相互兼容(例如,–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文件格式:

1
2
3
4
<script>alert('XSS')</script>
<samp>XSS</samp>
<a href=javascript:alert('XSS')>Click</a>
...等等

用户可以创建自己的payloads.json文件,如果过滤功能可用,甚至不需要注意类别,而没有type标志时,FormPoison无论如何都会遍历整个文件。

新功能

  • JavaScript源代码扫描器
  • 文件名XSS测试模式
  • Mutation XSS(mXSS)测试模式
  • 多线程加速注入尝试
  • 登录模式现在支持过滤
  • 详细模式中更多类似Burp的响应

从此处克隆仓库:[GitHub链接](GitHub Link)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计