今天会针对于不同场景下使用不同功能模块做一个简单的介绍,更详细的使用方式可以通过链接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
type "ip=106.xx.95.206" fofa search -s 3 -f host,
2024/08/28 19:49:23 query fofa of: ip=106.xx.95.206
106.xx.95.206,subdomain
106.xx.95.206:443,service
106.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.206
https://106.xx.95.206,subdomain
106.xx.95.206:443,service
106.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字段。
jsRender -tags title --format=json -i link.txt -o data.txt
▌数据处理-资产分类
在结果输出环节,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: "其他"
▌组合演示
fofa.exe -f ip,port,host,link,title,protocol,status_code,lastupdatetime --headline -s 10000 --dedupHost --checkActive 3 -i ip.txt -o data.csv
▌写在最后
原文始发于微信公众号(FOFA):高效的数据查询和处理工具-GoFOFA
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论