1 Start
分享一个斯叔平时在渗透小程序的时候经常会碰到的一个漏洞–任意手机号登录。其实也就是任意用户登录,只不过这个登录方式是通过手机号进行登录。问题点通常在小程序的“微信快捷登录”的地方。Such as 这种
这个功能点呢通常是调用当前微信绑定的手机号信息,很多企业都会使用这个功能点。究其本因,终究是sessionkey惹的祸。那这个sessionkey是什么玩意儿呢?简而言之微信登录时获取的一个会话密钥,用于加密用户敏感数据,以保护用户隐私。具体来说,当用户登录小程序时,微信服务器会返回一个 sessionKey,小程序通过该 sessionKey 和用户的加密数据进行解密和解码,从而获取用户信息。附上一个官方的解释图
挑点老铁感兴趣的讲就是一旦你知道了sessionkey的内容,你就可以解密微信登录的内容获取用户信息数据,此时就可以将自己的信息修改成其他任意的手机号,造成任意手机号登录,用户的个人信息安全体系直接土崩瓦解。那么sessionkey这么重要,咱们官方霸霸一点都不管不顾吗?当然不,让我们瞅瞅来自官方的警告
显然,官方早就意识到了这是个严重的问题,进行了着重强调。But 总有些开发者从来不听劝或者压根没看见,好似老师讲了多少次的重点,总有同学记不住一样。这不就是白捡的漏洞嘛,相当于是发现小程序给用户返回了sessionkey的内容,那么用户就可以利用这个sessionkey进行任意手机号登录。
2 Action
以斯叔做过的一个项目为例,首先找到微信登录的功能点,劫持请求包
哦吼,发现请求包中,小程序将无比重要的sessionkey也放了进去
encryptedData部分就是我们的个人信息内容,使用的是AES-CBC的加密方式,密钥就是我们的sessionkey,iv显而易见,我们使用已有信息对加密内容进行解密,成功显示了我们手机号信息
接着我们将手机号修改成18888888888进行测试,使用加密的方式再将信息加密回去
将加密的数据内容替换原本encryptedData的内容,发送请求包,成功返回使用18888888888登录成功的信息内容
是不是so的easy
?当然不是所有的小程序都会将sessionkey置于请求包中的,所以可以在burp全局搜索是否存在sessionkey的相关字样的请求包,兴许他就藏在某个响应包中哦。
最后
朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
1.网安必备全套工具包和源码
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,路线图上的每一个知识点,我都有配套的视频讲解。
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加护网行动、CTF和挖SRC漏洞的经验和技术要点。
网安方面的电子书我也收藏了200多本,基本上热门的和经典的我都有,也可以共享。
4.NISP、CISP等各种证书备考大礼包
5.CTF项目实战
学习网安技术最忌讳纸上谈兵,而在项目实战中,既能学习又能获得报酬的CTF比赛无疑是最好的试金石!
6.网安大厂面试题
这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~