📜  FinDOM-XSS – 基于 DOM 的快速 XSS 漏洞扫描器(1)

📅  最后修改于: 2023-12-03 15:00:45.506000             🧑  作者: Mango

FinDOM-XSS – 基于 DOM 的快速 XSS 漏洞扫描器

简介

FinDOM-XSS 是一款基于 DOM (文档对象模型) 的快速 XSS (跨站脚本攻击) 漏洞扫描器。它旨在帮助程序员及安全工程师快速发现和修复网页应用中的潜在 XSS 漏洞,保护用户的信息安全。

特点
  • 基于 DOM 的扫描:FinDOM-XSS 使用 DOM 解析网页的 HTML 和 JavaScript 代码,检测是否存在可以被攻击者利用的潜在 XSS 漏洞。
  • 快速扫描:利用并行处理和异步加载的策略,FinDOM-XSS 可以有效提高扫描效率,快速检测出潜在的漏洞。
  • 深度检测:FinDOM-XSS 不仅仅只检测直接出现在 HTML 中的 XSS 漏洞,而且会进一步检测通过 JavaScript 动态生成的代码中是否存在漏洞。
使用方法
  1. 安装:首先,你需要安装 Node.js 和 npm (Node.js 的包管理工具)。
$ npm install findom-xss
  1. 引入模块:在你的代码中引入 FinDOM-XSS 模块。
const Fxss = require('findom-xss');
  1. 创建扫描器实例:使用 new 关键字创建一个扫描器实例。
const scanner = new Fxss();
  1. 加载网页:使用 load 方法加载要扫描的网页。可以通过传递一个 URL 字符串或 HTML 代码片段来加载网页。
scanner.load('https://www.example.com'); // 加载 URL

或者

scanner.load('<html><head></head><body><h1>Hello, world!</h1></body></html>'); // 加载 HTML 代码片段
  1. 执行扫描:通过调用 scan 方法开始执行 XSS 漏洞扫描。
scanner.scan((result) => {
  console.log(result);
});
  1. 处理扫描结果:在回调函数中处理扫描结果。扫描结果为一个包含所有潜在 XSS 漏洞的数组,每个漏洞对象包含所在位置、攻击载荷等信息。
示例

以下是一个示例代码,演示了如何使用 FinDOM-XSS 进行 XSS 漏洞扫描。

const Fxss = require('findom-xss');

const scanner = new Fxss();
scanner.load('<html><head></head><body><script>alert("XSS");</script></body></html>');
scanner.scan((result) => {
  console.log(result);
});

输出结果为:

[
  {
    location: '/html[0]/body[0]/script[0]',
    payload: '"><img src=x onerror=alert(1)>',
    type: 'DOM-Based',
    url: ''
  }
]
链接
贡献

如果你对 FinDOM-XSS 感兴趣,欢迎贡献代码、提交 bug 反馈或提供任何建议。详细操作方法请参阅 GitHub 代码库中的贡献指南。

许可证

FinDOM-XSS 使用 MIT 许可证。