Skip to content

SecuraPath/DaofaGui

Repository files navigation

DaofaGui - Fofa 高,Daofa 远 ~~

一套把 FOFA 查询、模板复用、批量执行、结果导出与排错流程收进桌面端的工作台。

DaofaGui 是基于 Wails 构建的 FOFA 桌面应用,围绕日常资产检索中的高频动作,把查询、模板、导出、日志、配置和账号校验集中到一个统一界面里。它不追求功能堆叠,而是更强调把常用操作串成一条连续、顺手、可复用的工作流。

项目定位

  • 面向日常 FOFA 检索、批量研判和结果整理场景
  • 把查询、模板执行、模板维护、数据处理和排错能力整合到一个桌面工作区
  • 减少在网页、配置文件、导出表格和日志之间来回切换的成本

界面预览

image-20260418105619923

侧边栏功能一览

1. FOFA 查询

FOFA 查询页负责承接最核心的日常搜索流程,适合从“输入语句”一路走到“结果预览”和“字段导出”。

  • 支持查询语句输入、时间过滤、国家筛选和每页数量控制
  • 支持 search / search-next 两种查询方式
  • 支持结果预览、分页浏览和当前结果内检索
  • 支持自定义导出字段,并可保存默认查询字段与默认导出字段

image-20260418105920904

2. 模板执行

模板执行页面向实际批量使用场景,把“选择模板”“填写参数”“批量执行”“查看结果”收在一个独立工作区里。这是作者之前使用的较多的功能。

  • 选择模板后可直接填参执行批量任务
  • 支持时间过滤、国家筛选、目标批量输入和结果导出
  • 单个目标失败时不会直接拖垮整批任务
  • 结果支持按目标分组展示,便于横向比对与复盘

image-20260418105958175

3. 模板库管理

模板库管理页负责模板沉淀和维护,让模板不只是“存起来”,而是真的能被持续整理和复用。

image-20260418110022373

4. 数据处理工具

数据处理工具页用于承接查询后的轻量整理工作,让结果在导出前就能完成基础归一和分组分析。

  • 主机归一化:统一输入格式,补全显式协议
  • C 段统计:快速观察资产分布
  • 资产分组:按根域名归类整理
  • 一份输入,多种处理视角,适合结果清洗与研判辅助

image-20260418110042164

5. 请求日志

请求日志页把常见排错信息集中展示出来,方便在查询异常、导出失败或账号校验异常时快速定位问题。

  • 支持查看请求 URL、响应摘要和日志内容
  • 展示日志文件路径、文件大小和最近更新时间
  • 支持刷新与清空日志
  • 对大体积响应做收敛展示,更适合日常排查

image-20260418110104835

6. 设置

设置页负责统一维护运行所需的核心配置,让查询和导出策略可以直接在界面中保存和复用。

  • 支持配置邮箱、API Key
  • 支持维护默认查询字段和默认导出字段
  • 配置修改后可直接服务于后续查询与导出流程
  • 降低重复输入和人工确认成本

image-20260418110223549

7. 账号验证

账号验证页用于在执行任务前确认 FOFA 账户状态,减少因为额度或权限问题带来的无效操作。

  • 支持校验账号可用性
  • 可查看会员状态、API 查询额度、数据额度和余额信息
  • 将账户状态检查前置,便于及时发现环境问题

image-20260418110209629

模板文件规范

DaofaGui 默认从项目根目录的 templates/ 读取模板文件,支持 .yaml.yml 后缀。模板用于驱动“模板执行”和“模板库管理”两个工作区,建议统一按照下面的结构编写。

顶层字段

字段 是否必填 说明
id 建议填写 模板唯一标识,建议与文件名或模板用途保持一致,便于在界面中识别
description 可选 模板用途说明
author 可选 模板作者或维护人
fofaQuery 必填 模板实际执行的 FOFA 查询语句
inputs 可选 模板输入参数定义
searchFields 可选 模板执行时使用的查询字段列表

补充说明:

  • fofaQuery 为空时模板无法执行
  • 历史字段名 fofa_query 也能被兼容读取,但新模板建议统一使用 fofaQuery
  • searchFields: [] 表示跟随设置页里的默认查询字段
  • searchFields 中的字段需要是程序支持的 FOFA 查询字段

inputs 字段规范

inputs 是一个数组,每一项对应一个可替换参数。fofaQuery 中出现的 {target}{keyword} 这类占位符,会按照同名 key 进行替换。

每个输入项支持以下字段:

字段 是否必填 说明
key 必填 参数名,对应 fofaQuery 里的 {key}
label 可选 表单展示名称,不填时会根据 key 自动生成
type 可选 输入类型,建议使用 texttextarea,默认是 text
required 可选 是否必填
placeholder 可选 输入框提示文案
default 可选 默认值,未填写时会自动带入

输入规则说明:

  • type: text 适合单值输入,例如关键词、自定义查询语句、产品名
  • type: textarea 适合批量输入,例如 IP、域名、目标列表
  • 当前程序只会把第一个 textarea 输入项视为“批量执行字段”
  • 批量输入会按换行、空格、Tab、逗号、分号拆分,并自动去重
  • 如果模板完全不需要参数,建议显式写成 inputs: []

占位符规则

  • 推荐在 fofaQuery 中直接使用 {target}{keyword}{query} 这类具名占位符
  • inputs[].key 必须和查询里的占位符名称一致
  • 兼容旧模板写法:{PlaceHolder}{param_1} 会自动映射为 {target}
  • 如果模板未显式声明 inputs,程序会尝试从 fofaQuery 中自动推断占位符,并补成必填输入项

推荐写法示例

适合批量根域名查询的模板示例:

id: RootDomains
description: 根据根域名查询相关资产
author: starlink
fofaQuery: domain="{target}"
inputs:
  - key: target
    label: 根域名
    type: textarea
    required: true
    placeholder: example.com
searchFields:
  - host
  - ip
  - domain

适合固定查询、无需额外参数的模板示例:

id: ExchangeQuery
description: Exchange 固定查询
author: alice
fofaQuery: app="Microsoft-Exchange" && (port="80" || port="443")
inputs: []
searchFields: []

编写建议

  • 文件统一放在项目根目录的 templates/ 下,便于模板库直接读取
  • 文件名建议与 id 保持一致,方便排查和维护
  • 一个模板里尽量只保留一个 textarea 输入项,避免批量执行语义不明确
  • 查询语句里的变量建议写在引号内,例如 ip="{target}"title="{keyword}"
  • 没有特殊字段需求时,searchFields 可以写成空数组,让模板跟随全局默认配置

使用案例

快速开始

  1. 安装前端依赖
cd DaofaFrontend
npm install
  1. 安装 Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest
  1. 在项目根目录启动开发环境
wails dev
  1. 打包构建
wails build
  1. 使用脚本生成发布包
.\scripts\build-release.ps1 -Version 0.1.0

脚本会完成以下工作:

  • 执行 wails build --clean --platform windows/amd64
  • releases/ 下生成发布目录、.zip 包和 .sha256.txt
  • 自动收集 DaofaGui.exeDaofaBackend/templates/使用案例.md
  • 自动创建空的 daofa_requests.log
  • 自动清空发布包中 DaoFaConf.yaml 里的 EmailApiKey

如果已经手动构建完成,只想重新打包,可以使用:

.\scripts\build-release.ps1 -Version 0.1.0 -SkipBuild

当前发布包默认不包含 README.md

使用声明

本项目仅用于合法授权的安全研究、资产梳理与验证场景,请勿用于未授权目标。

About

用于 FOFA 高级语法查询的桌面图形化(GUI)工作台

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors