I am You: 通过FOFA客户端获取你的key

mark0smith  1567天前

大家好!今天我将介绍在fofa客户端发现的一个漏洞,它可让我获取他人的敏感信息,劫持帐户。email和api key 是用户登陆fofa客户端的凭证,知道了email和api key可以获取用户提交的漏洞信息及POC源码。

fofa客户端登陆

你可以通过客户端里进行POC的编写、发布,也可以在商城里看有哪些新的POC发布了。

fofa客户端商城搜索

搜索信息

在fofa客户端里可以进行POC搜索,对应的URI是/exploits/shop_search;可以搜索的数据类型有一些,比如标题名称、漏洞作者、漏洞价值F币、是否包含EXP等,大致信息如下表:

参数用途
q%5Bhas_exp_true%5D=1搜索是否含有EXP
q%5Bflags_model_exploits_flag_id_eq%5D=1搜索是否含0day、top等标签
q%5Bprice_lteq%5D=200搜索价格
q%5Bproduct_eq%5D=Centreon搜索产品
q%5Bname_cont%5D=Linksys+WVBR0-25搜索标题关键字
q%5Busers_username_eq%5D=LubyRuffy搜索作者

BurpSuite记录

搜索语句结构

搜索语句都放在字典/列表 q 里,语句的结构是参数+逻辑判断的结构。

比如users_username_equsers_username表示搜索的信息是用户名;

_eq表示搜索逻辑是等于;类似地包含就是_cont,大于是_gt,小于是_lt

email、Key 信息获取

漏洞原理

如果users_username_eq搜索的是用户名等于什么值,那么如果搜索key里面包含什么值的话,对应的语句就是users_key_cont

搜索key包含.png

上图中,搜索的语句是/exploits/shop_search?fofacliversion=3.10.4&q%5Busers_key_cont%5D=ab2719&q%5Busers_username_eq%5D=mark0smith,其中q%5Busers_key_cont%5D=ab2719表明搜索的key中包含ab2719,而下方Referer中的key页包含该值,查看右侧相应条目数返回了十个漏洞EXP信息,这是个正常的结果。

而下图中搜索的语句为包含ab2718,与实际情况不符,所以右边没有返回漏洞信息,这是个搜索异常的信息。

搜索key不包含.png

通过这种不停地包含测试,我就可以一位位推断出所需要的信息。

email、key获取

知道了上面的原理,只要一位一位的进行尝试就可以得到完整的信息了,就像SQL注入一样。以获取key为例,当我正常登录客户端后,正常的商店搜索请求如下(注意,此时我已将URL中的name和key改为其他用户的):

222.png

此时我将URL中的key的值截取部分,请求依然正常:

333.png

而当key中的字符顺序错乱时,达不成包含关系,将不会返回数据:

444.png

总而言之,只要你登陆成功,拥有有效的session,就可以对他人的key进行暴力猜测。

demo.png


时间线

2020年1月10日:漏洞发现,立刻上报

2020年1月10日:fofa确认漏洞存在,立刻采取临时防御措施

2020年1月12日:漏洞修复完成,发放奖励(300F币)


此次渗透只进行了漏洞确认,并未非法抓取任何数据。在发现漏洞后作者及时和FOFA官方进行了交流,经过对流量和日志的审计,并未发现有实际利用的痕迹,更没有对其他用户产生影响(泄露POC等)。为了加强安全性,建议所有会员立刻前往主页更新自己的key。


NOSEC欢迎各位安全人员向我们提交所有和白帽汇相关的网站的漏洞,我们将根据漏洞详情给予对应奖励。

最新评论

昵称
邮箱
提交评论