
关于微信小程序
AppSecret是与AppID对应的密钥,用于对小程序进行签名加密,保障小程序的安全性。登录微信公众平台,进入小程序管理后台
通过渗透测试及护网发现小程序存在很多问题,比如逻辑漏洞(验证不合理)有用户注入风险、泄露appId,appSecret、未授权获取access_token等
1、用户注入
用注入存在小程序的用户注册(也就是刚进去就要求用户登录,或在个人中心需自己登录的),但是有的小程序是自动获取微信接口自动登录的而且数据是加密的,这类小程序你就不要在xjb点着测试了,没用的,跳过就好。
如果存在注入就像下边这样,可以无限请求接口,无限加入用户,且用户校验极其不严格(不信你看看,怎么可以一个身份证号对应那麽多不同的人😂)
这里在多一嘴,当你点击发送的数据时,你不妨看看,里面有没有userType、type等潜在意思是用户类型的字段,如果有,你改一下0,1,2(按照实际,有的里面可能不是012可能是其他单词,amdin,user等)都给测试一下,说不定就越权成管理员了呢,你说是吧
就像下边的
2、泄露appId,appSecret
直接在get请求中携带appid和appSecret
3、 未授权获取access_token
4、获取了appId、appSecret、access_token怎么做
嗯?问的好,appid与appSecret是为了进一步得到access_token,若果直接未授权或通过信息泄露得到access_token就更好了,可以直接利用,接管小程序
access_toke是小程序的唯一凭证密钥,也是获取小程序全局唯一后台接口调用凭证的重要参数,需要开发者妥善保管至后台服务器中,并严格保密,不向任何第三方等透露。小程序若存在AppSecret密钥泄露漏洞的情况,会造成身份信息仿冒、敏感数据外泄等严重后果,会对企业及单位造成了极大的安全风险。开发者应及时发现该漏洞并快速修复相应问题
攻击者可以通过调用API获取该小程序敏感数据,如接口调用凭证、用户信息、用户使用数据等,造成了极大的安全风险
官方文档:
微信官方接口文档示例{"access_token":"ACCESS_TOKEN","expires_in":7200}
测试
当拿到access_token进行api调用测试
1、获取服务器ip
https://api.weixin.qq.com/cgi-bin/get_api_domain_ip?access_token=92_8KwToy1OYC56NfDPdNqpoW_wcQeqwTXGXSMKWUd_Lw3lXlbm17Zi25geiPMtcA6F1DItvFJKmw2ujE1PhW3ciNOGymdgsUCAXF5o6rjPxnzt_sSoVMkH1G6LrXIWBMbAEAEJU
2、查询域名配置
微信官方提示了,所有api操作等于真实操作,所以不要乱来,随便获取一下域名、查询一下用户证明token能用就行
3、向用户发送数据
4、用户管理
进一步通过OpenID来获取用户基本信息:
GET /cgi-bin/user/info?access_token=<TOKEN>&openid=<OPENID>&lang=zh_CN HTTP/1.1
Host: api.weixin.qq.com
User-Agent: Mozilla/5.0 (iPad; CPU OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Tablet/15E148 Safari/604.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br, zstd
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i
以上使用到的官方工具:
5、什么?小程序怎么抓包?
讲了这么多,你突然来一句小程序怎么抓包,好吧好吧,是我肤浅了,那在稍微说一下小程序抓包的事
Proxifier有吧,没有点这儿下载:
bp总该有吧,没有自己百度去🤬
bp设置好代理
Proxifier 设置代理服务器及代理规则
设置代理服务器(刚刚bp里面填的ip和端口,选择https)
设置代理规则,应用程序处将微信的WeChatAppEx.exe添加进去,
最下边的动作选择刚刚的代理服务器
勾选我们配置好的代理规则,将default那一行最后的选项改为direct,配置好如下
开始抓包
打开小程序,注册登录,挨个点完功能点,基本上都是数据查询,查看burp数据包,运气好的话你就会发现有趣的数据包(包含各种key的包)
抓包后渗透测试思路与web基本一致
如果有抓不到包的情况查看一下代理地址端口是否设置正确,burp的证书是否安装,确保这些操作就应该没啥问题了
ps:相关文章
- 感谢你赐予我前进的力量