小程序渗透
大约 2 分钟
PC端小程序抓包渗透
通过 Proxifier 将微信小程序客户端的流量发送到 burpsuite 代理。
1)BurpSuite 开启代理,监听端口为 127.0.0.1:8080
2)Proxifier 设置的代理服务器和代理规则
代理服务器:
代理规则:
反编译获取源码
一键反编译PC端小程序
信息泄露
各类信息搜索关键字
信息内容 | 关键字 |
---|---|
用户凭证 | passwd |
用户凭证 | password |
网站URL | http:// |
网站URL | https:// |
API凭证 | apikey |
访问令牌 | token |
访问令牌 | access_token |
访问令牌 | accesstoken |
小程序ID | appid |
云主机Key | accesskey、access_key |
云主机Key | secretid |
正则匹配
#IP地址
(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)
#手机号码
0?(13|14|15|17|18|19)[0-9]{9}
#邮箱地址
\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
#身份证
\d{17}[\d|x]|\d{15}
未授权访问
搜索接口路径,(GET和POST两种方法)尝试访问所有接口,看看是否有无需认证就能访问的接口。
#内部路径
"/.*/.*"
href=".*"
src=".*"
Appid和Secret利用
获取到的appid和secret可以到微信的官方接口去自由生成微信小程序的AccessToken
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={{APPID}}&secret={{APPSECRET}}
拿到 AccessToken,相当于可以控制整个小程序了,并且 AccessToken 微信每天只能生成20次
{
"access_token": "70_qGt5fEExKvlXX1tC_e_r_aRYPj0j3_oxZlazJ7-NcC44omBfHwfjXKxTN7WJWl9dTGGxCL2vPd9M0u1DSQS5pjjhEUtz-PhJ2kX0GSFov2KOAnjf5FUhNJLk1UUWGWcAHALVL",
"expires_in": 7200
}
access_token 后续利用,可以用发送图文文章/消息用于钓鱼。
用微信调试工具发起真实请求,https://developers.weixin.qq.com/apiExplorer
破解 sign 签名
sign定义
sign一般用于参数签名,用来验证数据的完整性和真实性。
为校验客户端数据传输合法性,防止用户篡改参数、伪装、重放以及数据泄露等常用sign签名校验。
sign标识生成方法一般是是将秘钥、时间戳、特殊字符、随机数等参数经过特定排序后使用某种加密算法进行加密,作为接口中的一个参数sign来传递,也可以将sign放到请求头中。
一般加密方法有:MD5、AES、SHA等。
绕过签名思路
1、观察sign的格式,看是否弱加密,比如是base64解码;
2、将sign字段删除或直接置空sign的值,尝试绕过校验;
3、反编译出源代码,查找加密算法,找到sign的生成方式。