xiecat / fofax

FOFAX是一个基于fofa.info的API命令行查询工具
https://fofax.xiecat.fun/
GNU General Public License v3.0
719 stars 74 forks source link

一些建议 #28

Closed komomon closed 20 hours ago

komomon commented 1 year ago

第一二条适合新旧会员,第三条更加有助于老版会员。 1、fofaapi给出了各个等级的用户可以通过获取哪些字段,同时fofaapi提供了返回账户信息的api,建议师傅不要直接删除lastupdatetime字段,有些时候当数据超过这个值的时候,大家有个参考,知道通过api查询的最后一条数据日期是什么时候,可以通过web加上before after字段去查看未通过api获取的资产。便于大家获取未通过api获取到的资产,或者根据before after字段,再次通过fofax进行查询,获取第一次未获取到的数据。 实现方法:下面的第二条的的方法,判断用户是否是专业及以上会员,以此来判断是否结果输出lastupdatetime字段。 fofatapi获取账户信息,包括会员等级: image fofa对各个等级会员支持的查询字段和输出字段: image

2、建议fofax添加一个获取全字段的参数,比如--all-fields,方便有需要lastupdatetime或其他字段的用户获取所需数据。 实现方法:fofax代码中添加各等级会员支持查询和返回的字段的代码,fofax每次查询之前先检查userinfo.json是否存在,如果不存在则fofax先通过api https://fofa.info/api/v1/info/my查询用户的信息(如图1),并将用户信息存到userinfo.json文件中。当查询时,如果用户使用了--all-fields参数,则根据已存在的userinfo.json的会员等级level字段判断用户等级,并返回该等级会员所能返回的所有字段。 这一条针对老版会员的帮助很大。

3、建议fofax添加--dumpall(-dl)或者--report-all(-rl)参数并结合-fs参数,通过自动添加before after参数来导出所有查询数据,这一条针对至少高级会员。 原因:对于老版会员,每次api查询是有数量限制的,超过需要付费,但是可以通过添加before after参数来获取所有查询数据。 实现方法:先获取历史记录的条数总数,然后根据使用的-fs参数自动截断获取指定的条数,然后根据最后一条的日期加一(可以通过转成时间戳加1天再转成时间,就不用担心跨月份之类的问题。同时加一也是为了防止后面还有这一天的数据,而漏掉),拼接上语句&& before="这个日期"再获取-fs参数指定的条数,最后去重合并,输出结果。

一些建议,再此万分感谢师傅已开发的fofax。

Becivells commented 1 year ago

感谢师傅的建议。可能我表述的有问题,lastupdatetime是从代码中移除了。但是实际依旧可以使用。最初设计的时候lastupdatetime有一部分是占位的功能。因此移除对实际功能没有影响。现在依旧可以使用。比如

fofax -q 'apache' -ff "ip,lastupdatetime"

2.-all-fields-dump-all 这个主意很好。我们尽量抽空做一下。 3.针对大批量的数据导出我们有做。可以试一试 https://github.com/xiecat/sylas 这个相对来说好用点。

komomon commented 1 year ago

sylas是只要浏览器登录fofa账号,自己获取api和key,然后进行api获取数据吗,还是网页爬取。看了下是根据不同国家来获取数据,对于普通用户友好,但是依然不能获取最全数据。