FalconToolbox之无缝集成oneforall
字数 1270 2025-08-29 08:30:12
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输出逻辑支持多域名
- 优化前端输入和结果显示