jsRender -tags title --format=json -i link.txt -o data.txt
高效的数据查询和处理工具-GoFOFA
▌序章
GoFOFA是一款使用Go语言编写的命令行FOFA查询工具,它除了具备基础的FOFA API接口调用能力之外,还可以直接对数据进行下一步的处理,通过模块化的调取方式,让数据自动化从元数据到业务数据的转变。
GoFOFA融合了多种 FOFA API 调取方式,集成了丰富的实用功能点如批量搜索和下载,并针对共性需求设计了如探活检测、页面渲染、资产分类等数据处理模块。不仅如此,GoFOFA 未来也会作为FOFA一些预上线功能的试验场。
今天会针对于不同场景下使用不同功能模块做一个简单的介绍,更详细的使用方式可以通过链接https://github.com/FofaInfo/GoFOFA下载或直接用微信联系FofaBot获取。
如果您觉得这个工具还不错的话,给我们点上一个Star吧~
▌查询-批量查询和大数据量下载
在查询模块,除了有最基本的所有API接口的调用之外,还添加了很多实用的功能,比如批量搜索、URL拼接、证书拓线获取域名、图标多样查询和大数据量下载。
批量搜索可以解决大批量、同质化内容查询的问题,目前支持IP或者domain的批量查询。
程序可以通过调取文件中的IP,自动完成语句的拼接进行批量查询,比如查询任务为1000个IP,那么程序会自动拼接成100为1组的查询语句,共10组进行查询并自动化完成数据下载,可以大大的缩短数据调取的时间。
演示视频场景:
1000个ip的ip.txt任务文件中;
返回的1年内的所有结果都要;
获取字段包括:ip,port,host,link,title,domain;
并自动保存为一个data.csv格式文件。
fofa.exe dump -i ip.txt -bt ip -bs 50000 -f ip,port,host,protocol,lastupdatetime -o data.csv
▌数据处理-去重
关于去重,不同的师傅有不同的去重要求,有些师傅需要通过URL进行去重、有些则需要针对于IP去重、还有需要进行泛解析去重的需求。
所以我们一次就全做出来了,既可以边查询边去重,最终结果是去重后的,也可以文件上传后进行去重。大家可以根据自己的需求进行去重操作。
URL去重
通过host字段对数据进行去重唯一值操作,因为fofa存在subdomain和service的概念,如果host相同,优先保留subdomain数据。命令参数:--dedupHost
$ fofa search -s 3 -f host,type "ip=106.xx.95.206"2024/08/28 19:49:23 query fofa of: ip=106.xx.95.206106.xx.95.206,subdomain106.xx.95.206:443,service106.xx.95.206,service
$ fofa search -s 3 -f host,type --dedupHost "ip=106.xx.95.206"2024/08/28 19:52:30 query fofa of: ip=106.75.95.206https://106.xx.95.206,subdomain106.xx.95.206:443,service106.xx.95.206,subdomain
IP去重
顾名思义,输出结果中,相同IP的数据仅保留一条。命令参数-uniqByIP
fofa --uniqByIP -s 5 domain=fofa.info
2024/11/27 18:34:40 query fofa of: domain=fofa.info
163.xx.116.1,80
118.xx.38.182,443
60.xx.172.10,443
117.xx.16.112,443
120.xx.152.23,2181
106.xx.3.75,443
泛解析去重
对于相同的主域名,可以设置保留泛域名的数量,如--deWildcard 1 只保留1条数据。需要注意的是,这里的判断标准是ip,port,domain,title,fid都相同的数据为泛解析进行排除。
$ fofa search -s 3 -f link domain=huashunxinan.net
2024/08/27 17:19:04 query fofa of: domain=huashunxinan.net
http://h8huumr2zdmwgy5.huashunxinan.net
http://keygatjexlvsznh.huashunxinan.net
http://jobs.huashunxinan.net
$ fofa search -s 3 -f link --deWildcard 1 domain=huashunxinan.net
2024/08/27 17:26:42 query fofa of: domain=huashunxinan.net
http://h8huumr2zdmwgy5.huashunxinan.net
https://fwtn2k7oigaiyla.huashunxinan.net
http://huashunxinan.net
▌数据处理-探活
探活,也是获取数据之后非常常见且共性的一个需求,该功能模块支持一边获取数据并同时进行探活输出,最终返回的数据会默认加上isActive字段,并会更新status_code的字段。
命令参数:--checkActive,加上数值则代表超时情况下的重复次数。
演示视频场景:
请求结果100条;
格式选择为json格式输出;
超时重复设置为3次。
-s 100 --checkActive 3 --format=json port=80 && type=subdomain
▌数据处理-JS渲染识别
JS渲染模块顾名思义可以针对获取的数据中的URL字段进行JS渲染处理,处理后支持选择获取渲染后的html标签,目前支持同步获取渲染后的title、body字段。
命令参数:jsRender 选择渲染模块;-url,用来选择单个目标;-tags选择获取渲染后的标签。
注意:jsRender模块对性能要求过高,不建议随意更改workers参数
演示视频场景:
请求结果10条;
从管道中获取到的url进行渲染识别;
并标记上新获取的title字段。
▌数据处理-资产分类
在结果输出环节,GoFOFA支持通过关键特征对CSV文件进行分类。这一操作可以通过config.yaml配置文件来完成。
我们可以提前在config.yaml文件中设置过滤规则filter,通过内置一个contain的方法对数据进行处理并分类。
案例配置规则:
分类一名字:标题包含后台特征的可访问资产
分类二名字:标题为不为空的可访问资产
分类三名字:其他
categories:
- name: "标题包含后台特征的可访问资产"
filters:
- "CONTAIN(title, '后台') && CONTAIN(title, '登录') && status_code == '200'"
- "CONTAIN(title, '管理') && CONTAIN(title, '系统') && status_code == '200'"
- name: "标题为不为空的可访问资产"
filters:
- "title != '' && status_code == '200'"
- name: "其他"
▌组合演示
通过刚才上述介绍的功能模块,我们能自动化对数据做怎样的处理呢?
我们假定以下规则:
需要对一个数量为100个IP的txt文件进行批量搜索;
对数据进行host去重,且仅获取subdomain数据;
对去重后的数据进行探活处理;
对存活的资产进行JS渲染识别;
对资产按照上述配置规则进行分类;
fofa.exe -f ip,port,host,link,title,protocol,status_code,lastupdatetime --headline -s 10000 --dedupHost --checkActive 3 -i ip.txt -o data.csv
▌写在最后
在决定开源 GoFOFA 之前,我们深知社区中已经有许多优秀的 FOFA API 调取工具。比如由 WgpSec 狼组的 fofa_viewer、Xiecat的fofax、以及HxO 战队的FofaMap等。
这些工具功能强大,且深受白帽子们的喜爱。起初我们也曾认为,既然已经有这么多出色的 FOFA API 工具,似乎作为官方再开发一个类似的工具显得多余。然而,随着我们对用户需求的深入了解,发现仅仅停留在 API 数据调取远远不够。
在将数据拉取下来后,如何进行高效的二次处理,从而满足各种实际场景需求,是一个巨大的痛点。我们深知,“只有想不到,没有师傅们做不到”,各种数据处理需求层出不穷,包括我们内部在进行数据处理过程中,也实际在做各种各样的开发。
因此,我们萌生了一个想法:为什么不整合共性需求开源出来一款工具,既能高效调取数据,又能直接提供数据的二次处理能力,同时成为一个社区共创的平台?用户不仅可以体验 FOFA 的功能,还可以提出更多需求,甚至与我们一同共创未来的工具功能。我们希望通过开源 GoFOFA,让更多用户体验这款功能强大且灵活的工具,同时期待与师傅们一起将 FOFA 社区的技术创新与共创共同发展。
工具下载地址:https://github.com/FofaInfo/GoFOFA 或直接用微信联系Fofabot进行获取。如果您觉得这个工具还不错的话,求Star~
最新评论