FalconToolbox之无缝集成oneforall
字数 1270 2025-08-29 08:30:12

FalconToolbox集成OneForAll子域名收集工具教程

前言

FalconToolbox作为一款安全工具集,为了完善其功能,决定集成OneForAll这款强大的子域名收集工具。本教程将详细介绍如何实现FalconToolbox与OneForAll的无缝集成。

OneForAll工具介绍

OneForAll是一款功能强大的子域收集工具,项目地址:https://github.com/shmilylty/OneForAll

工具特点

  1. 功能全面

    • 提供大量子域收集接口
    • 支持批量子域自动收集
    • 包含自动子域解析、验证、FUZZ以及信息拓展等功能
  2. 用户友好

    • 不仅提供命令行模式
    • 还具备交互良好的前端界面
  3. 维护良好

    • 项目持续更新
    • 积极处理issues和PR
  4. 高效性能

    • 利用多进程、多线程及异步协程技术
    • 收集速度快

集成实现方案

基本实现思路

  1. 输入处理

    • 将用户输入的域名写入文件
    • 调用OneForAll进行处理
  2. 结果处理

    • OneForAll会生成CSV格式的结果文件
    • 需要设计数据处理逻辑来解析这些结果

技术实现细节

运行逻辑

  1. 基于FalconToolbox现有的ICP查询功能框架进行扩展
  2. 设计新的路由处理OneForAll相关请求

异步处理问题

原始实现存在以下问题:

  • OneForAll运行时页面会一直"转圈"等待
  • 切换到其他页面会导致当前运行中断
  • 返回OneForAll页面时,之前的运行会停止

解决方案

  1. 使用session存储当前查询的input_data
    • 确保每次访问/oneforall页面时能知道之前查询的内容
  2. oneforall_results记录任务状态
    • 保证查询进度不会丢失
  3. 前端自动检测当前查询任务状态
    • 如果有任务则继续轮询状态

数据处理

OneForAll生成的CSV文件格式较为杂乱,需要:

  1. 等待文件生成完成
    • 使用sleep实现等待
    • 检测文件生成或等待程序运行结束
  2. 解析CSV文件内容
  3. 将结果格式化后返回给前端

多域名支持

原始OneForAll有以下特点:

  • 单个域名输入时会生成一个CSV文件
  • 多个域名输入时会为每个域名生成单独的CSV文件
  • 同时会生成一个汇总文件

实现问题

  1. 输入框太小,只能输入一个域名
  2. 多个域名处理时文件会被覆盖

解决方案

  1. 修改前端输入框,支持多行输入
  2. 修改OneForAll的输出逻辑:
    • 将输出文件名固定化
    • 避免多域名时的文件覆盖问题

实现效果

最终实现的功能特点:

  1. 支持单域名和多域名输入
  2. 异步处理不会阻塞其他功能使用
  3. 结果展示清晰
  4. 查询状态持久化,即使切换页面也不会丢失

总结

通过本教程,我们了解了如何将OneForAll集成到FalconToolbox中,解决了异步处理、多域名支持和结果展示等关键问题。这种集成方式不仅提升了FalconToolbox的功能性,也为用户提供了更便捷的子域名收集体验。

关键点总结:

  1. 使用session保持查询状态
  2. 实现异步处理避免阻塞
  3. 修改OneForAll输出逻辑支持多域名
  4. 优化前端输入和结果显示
FalconToolbox集成OneForAll子域名收集工具教程 前言 FalconToolbox作为一款安全工具集,为了完善其功能,决定集成OneForAll这款强大的子域名收集工具。本教程将详细介绍如何实现FalconToolbox与OneForAll的无缝集成。 OneForAll工具介绍 OneForAll是一款功能强大的子域收集工具,项目地址:https://github.com/shmilylty/OneForAll 工具特点 功能全面 : 提供大量子域收集接口 支持批量子域自动收集 包含自动子域解析、验证、FUZZ以及信息拓展等功能 用户友好 : 不仅提供命令行模式 还具备交互良好的前端界面 维护良好 : 项目持续更新 积极处理issues和PR 高效性能 : 利用多进程、多线程及异步协程技术 收集速度快 集成实现方案 基本实现思路 输入处理 : 将用户输入的域名写入文件 调用OneForAll进行处理 结果处理 : OneForAll会生成CSV格式的结果文件 需要设计数据处理逻辑来解析这些结果 技术实现细节 运行逻辑 基于FalconToolbox现有的ICP查询功能框架进行扩展 设计新的路由处理OneForAll相关请求 异步处理问题 原始实现存在以下问题: OneForAll运行时页面会一直"转圈"等待 切换到其他页面会导致当前运行中断 返回OneForAll页面时,之前的运行会停止 解决方案 : 使用session存储当前查询的 input_data 确保每次访问/oneforall页面时能知道之前查询的内容 在 oneforall_results 记录任务状态 保证查询进度不会丢失 前端自动检测当前查询任务状态 如果有任务则继续轮询状态 数据处理 OneForAll生成的CSV文件格式较为杂乱,需要: 等待文件生成完成 使用sleep实现等待 检测文件生成或等待程序运行结束 解析CSV文件内容 将结果格式化后返回给前端 多域名支持 原始OneForAll有以下特点: 单个域名输入时会生成一个CSV文件 多个域名输入时会为每个域名生成单独的CSV文件 同时会生成一个汇总文件 实现问题 : 输入框太小,只能输入一个域名 多个域名处理时文件会被覆盖 解决方案 : 修改前端输入框,支持多行输入 修改OneForAll的输出逻辑: 将输出文件名固定化 避免多域名时的文件覆盖问题 实现效果 最终实现的功能特点: 支持单域名和多域名输入 异步处理不会阻塞其他功能使用 结果展示清晰 查询状态持久化,即使切换页面也不会丢失 总结 通过本教程,我们了解了如何将OneForAll集成到FalconToolbox中,解决了异步处理、多域名支持和结果展示等关键问题。这种集成方式不仅提升了FalconToolbox的功能性,也为用户提供了更便捷的子域名收集体验。 关键点总结: 使用session保持查询状态 实现异步处理避免阻塞 修改OneForAll输出逻辑支持多域名 优化前端输入和结果显示