大家好!今天我将介绍在fofa客户端发现的一个漏洞,它可让我获取他人的敏感信息,劫持帐户。email和api key 是用户登陆fofa客户端的凭证,知道了email和api key可以获取用户提交的漏洞信息及POC源码。
你可以通过客户端里进行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 | 搜索作者 |
搜索语句结构
搜索语句都放在字典/列表 q
里,语句的结构是参数
+逻辑判断
的结构。
比如users_username_eq
中users_username
表示搜索的信息是用户名;
_eq
表示搜索逻辑是等于;类似地包含就是_cont
,大于是_gt
,小于是_lt
。
email、Key 信息获取
漏洞原理
如果users_username_eq
搜索的是用户名等于什么值,那么如果搜索key里面包含什么值的话,对应的语句就是users_key_cont
。
上图中,搜索的语句是/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
,与实际情况不符,所以右边没有返回漏洞信息,这是个搜索异常的信息。
通过这种不停地包含测试,我就可以一位位推断出所需要的信息。
email、key获取
知道了上面的原理,只要一位一位的进行尝试就可以得到完整的信息了,就像SQL注入一样。以获取key为例,当我正常登录客户端后,正常的商店搜索请求如下(注意,此时我已将URL中的name和key改为其他用户的):
此时我将URL中的key的值截取部分,请求依然正常:
而当key中的字符顺序错乱时,达不成包含关系,将不会返回数据:
总而言之,只要你登陆成功,拥有有效的session,就可以对他人的key进行暴力猜测。
时间线
2020年1月10日:漏洞发现,立刻上报
2020年1月10日:fofa确认漏洞存在,立刻采取临时防御措施
2020年1月12日:漏洞修复完成,发放奖励(300F币)
此次渗透只进行了漏洞确认,并未非法抓取任何数据。在发现漏洞后作者及时和FOFA官方进行了交流,经过对流量和日志的审计,并未发现有实际利用的痕迹,更没有对其他用户产生影响(泄露POC等)。为了加强安全性,建议所有会员立刻前往主页更新自己的key。
NOSEC欢迎各位安全人员向我们提交所有和白帽汇相关的网站的漏洞,我们将根据漏洞详情给予对应奖励。