下面分享一下微信小程序的四种渗透技术,仅供网络安全技术学习,勿做非法渗透!
一、Sessionkey泄露导致任意用户登录
微信小程序进行鉴权登录,是需要严格按照微信官方团队的要求进行开发的,所以经常挖漏洞的师傅们会发现,在微信小程序中会存在很多通用的参数,比如appid、appsecret、openid、sessionkey、code.......等等,这些都是微信官方要求的开发规范。虽然都存在开发规范,但是总有开发者不遵守安全规范,导致sessionkey造成泄露,sessionkey一旦泄露,就会造成任意用户登录。
想了解更加详情的可以看微信官方的开发文档:
https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html
1.1 sessionkey泄露导致的任意账号登录
正常情况下,应该是下面这种格式,大概六七成的情况下,都是这种格式。
sessionkey任意登录三要素, 必须必备以下三个值,缺一不可!
1.sessionkey
2.encryptedData
3.vi
下面这种情况,三要素全部必备,如果没有其他意外,可以直接造成任意用户登录。
下面是实战案例,也是必备了三要素,但是注意,有时候开发者会将名称进行更改。
下面就是开发者将三个要素都进行了名称更改,但是不影响咱们去任意登录。
(手机号快捷登录、微信快捷登录会出现该漏洞)
将这三要素输入到这个解密工具后,可以直接解密获取明文的登录凭据,他的登录凭据就剩左边那两个手机号码。
然后你将这两个手机号码,改成受害者的手机号,然后再点击中间的加密,重新生产新的加密凭证。
把原本的18开头手机号,全部替换成16开头的手机号。
然后再返回你的登录数据包,
把原本的删了,替换成你的新的登录凭证。
直接登录成功!
二、Appsecret或access_token泄露导致公众号权限接管
这个也是属于微信小程序、微信公众号的特有漏洞,就一块给讲了。他的漏洞点就是同时泄露了appid和appsecret,通过这俩可以生成access_token,然后就可以使用access_token获得微信公众号权限,可以调用开发者的微信公众号的权限和接口。
逻辑如下:
appid&appsecret----->access_token---->未授权调用该平台开发者的功能接口
如果在数据包中发现有appsecret的泄露,直接使用下面的工具进行调用微信官方接口。
我这里使用的是我自己的appid和appsecret。
可以在微信官方接口去生成access_token。
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxxx=泄露的appsecret
也可以使用下面自动化工具,直接生成access_token,并且直接支持接口调用的功能。
这里的危害还是很大的,不仅生成的access_token能调用公众号/小程序 的部分功能,还能一直重复生成新的acess_token,这个最多每天上限2000次,超过了2000就会导致功能瘫痪。
备注:这里除了在渗透测试中数据包直接获得appid和appsecret生成access_token可以造成危害之外,如果直接泄露了access_token可以调用微信开发者后台权限的。
三、微信小程序反编译
当你访问一个小程序,他的前端代码会自动下载到你的本地文件夹Applet下,但是你没法直接查看js,需要进行反编译。
先全局搜索“WeChat Files” ,可以使用Everything查看文件的位置。
然后进入Applet文件夹,可以看到红框内的,就是三个小程序的前端文件。
但是因为名称是随机的,我们无法判断这个到底是哪个小程序的前端文件,就把他们全删了。
然后再访问一个你的目标小程序,就会在该文件夹下,重新生产一个文件,这样就能获得咱们的目标文件了。
然后下面使用两个工具进行解密。
然后还记得要在同级目录下,创建一共文件件 wxpack。
先使用“UnpackMiniApp.exe”
然后选择之前那个小程序生成的前端文件。
然后会在刚才创建的那个文件件下生产新的文件。
然后使用第二个工具,对这个文件进行反编译。
然后点击解包。
成功生成前端源代码ZIP压缩包,随便选择一共文件夹,进行导出。
进行解压。
然后使用代码工具打开,比如vscode ,就可以审计查看代码。
也可以ctrl+shift+F进行全局搜索关键词。
四、微信小程序强行开启JS调试
四、微信小程序强行开启12进行JS调试
下载hook工具,exe版本可能会报毒,杀软加白即可。或者暂时关闭杀软,我这里使用的是python版本。(建议小号,封号!)
(经过其他师傅确认,确实有封号风险,用小号测试!)
https://github.com/JaveleyQAQ/WeChatOpenDevTools-Python
因为强行打开微信的F12的开发者工具,需要微信的旧版本,新版本不行,因此需要下载旧版本安装包,建议在虚拟机里面搞,并且使用小号。
https://github.com/tom-snow/wechat-windows-versions/releases
虚拟机运行:
虚拟机安装电脑微信3.9.10.19版本
先登录微信,随便打开一个小程序。
运行hook工具。
随便打开一个小程序,会hook成功。
成功后会多一个devtools的窗口
其他BUG问题:
第一次hook成功之后,电脑重启后,可能出现无法hook的情况。
这时候把微信卸载了,重新安装那个老版本,再次进行hook就能成功。
后面再重启电脑后,都能hook成功,不用再重新卸载安装微信了。
关注公众号-后台回复“微信工具”获取上述所有工具。
漏洞挖掘课程中,会比上述内容多出超多实战案例还有新的技巧。
获取工具
链接: https://pan.baidu.com/s/1dAdTCSkQeU6DjwVYqTqpLA?pwd=c8ja 提取码: c8ja 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v8的分享
原文始发于微信公众号(猎洞时刻):<干货>微信小程序特有通用漏洞&小程序强开F12开发工具&小程序反编译&Accesstoken泄露
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论