任意用户登录?就是这么简单
前言
“FSRC经验分享”系列文章,旨在分享焦点安全工作过程中的经验和成果,包括但不限于漏洞分析、运营技巧、SDL推行、等保合规、自研工具等。
欢迎各位安全从业者持续关注~
1什么是任意用户登录
任何一个网站,只要开放注册,就有用户;有用户,就有身份认证机制。如果我们通过一些手法,绕过身份认证机制中的判断规则,就可以避开传统的密码/验证码检测,登录某个指定用户的账号,这就是任意用户登录。
2任意用户登录的整体测试思路
通过不同身份(如买家/卖家)不同级别(如新注册/已实名/vip级别)的账号测试,对于登录请求中存在的和身份信息相关参数,均做好识别
关键词:key/token/userid/uid/encry/encrypt/iv/pass/user/code/flag 等
遇到加密的用户id,尝试在其他功能寻找其他用户的id,如:论坛/评论处、找回密码处、系统中调用接口处
遇到加密的参数,尝试寻找加密方法来解密
burp勾上拦截response,通过返回包你可以看到不一样的风景
如果网站使用第三方oauth认证,可以去搜官方api平台给出的安全文档,查看参数的实际价值
3登录功能处案例分析
网站通过手机号登录,点击发送验证码,抓返回包,发现验证码明文返回,在前端认证。可以任意手机号登录
4找回密码处案例分析
通过手机号找回密码功能,在确认验证码处发现findWayFlag参数,可修改导致后端认为验证码正确
通过正常手段获取重置密码的链接,猜解链接的组成结构和内容(如用户名、userid或者时间戳等,通过简单加密构成)。构造重置他人密码的链接
key 参数为重置凭证,尝试分析生成方式。直接解密无果,尝试用 username、rvcode、sid 等三个参数的排列组合进行 md5/base64等,当尝试到 md5(username + sid) 时发现生成结果与邮件中的凭证一致:
只需要获取对方的邮箱和sid即可重置对方密码,而sid和邮箱可以直接在对方主页获取,可重置所有拥有邮箱信息的密码并进行登录
5个人信息修改处案例分析
结合越权漏洞,可以修改指定用户id的手机/邮箱为自己使用的手机/邮箱,再通过正常的密码找回流程找回
在修改个人信息页面,查看各种功能,在上传头像页面抓包发现向后台发送了一个user.userid参数
将该参数修改为他人uid,重新刷新个人中心,发现已经登录至上传的uid所在的账户资料页面
6FSRC对任意用户登录的危害定级
8FSRC的话
FSRC设立的本心,就是通过外部安全专家,帮助项目组消除可能存在的安全隐患。我们的目标其实就是收取真正存在的、可以对用户的数据造成各种影响的漏洞。
2021年我们修订了定级规则,真正按照漏洞可造成的实际危害来作为定级的第一标准。本质上减少收取了一些实质上对业务没有实际影响的漏洞,而通过举办活动和后续的调整,提高对真正有影响的漏洞的奖励。
我们也深深希望各位白帽能对漏洞的危害进行思考,如何将漏洞深度挖掘、组合利用,进而提出真正有威胁、有价值的漏洞。对于此类漏洞,FSRC也不会吝于安全币,一定会给出满意的奖励。
8免责声明
9参考资料
任意密码重置系列(by yangyangwithgnu)
https://www.freebuf.com/author/yangyangwithgnu
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/