一次很逆天的小程序渗透过程,给开发老哥加鸡腿!
任意用户登录
首先是用户登录页面
手机号一键登录,抓包
发现请求中泄露了sessionKey。
sessionKey是微信服务器给开发者服务器颁发的身份凭证,正常来说是不能通过任何方式泄露出去的。如果泄露,则可以使用任意手机号进行登录。
使用Crypto Magician对encryptedData进行解密
解密成功,将其中含有手机号的字段替换成18888888888,再进行加密
将请求中的数据替换为加密后得到的数据
放包
登录成功!
0.01元任意金额充值
接着来到充值页面
以充值100元为例,抓包
首先调用了提交充值表单的接口
这里不对其进行修改,直接放包
接着调用了微信支付接口,将支付金额改为0.01
然后进行支付
充值成功!开发太强了!
获取数据库账号密码
本来测到这里就想收手的,但是想到开发这么逆天,应该还留有漏洞
dirsearch 扫一扫
这是?
actuator信息泄露
我就说这开发有点本事吧!
查看/actuator/env接口,获取全部环境属性
发现数据库是搭建在内网的
密码不可见
而且经过仔细查看一番发现,连后台都没有·········
也没有其他可利用的
访问/actuator/heapdump
下载应用实时的 JVM 堆信息
使用heapdump_tools进行分析,查找password
获取到数据库账户密码
同时查找jwt还可以看到jwt的signingkey
差不多了
点到为止,渗透结束!
这就跟老板汇报让他给开发升职加薪!
总结
该漏洞已成功报告给相关单位
希望开发老哥有朝一日能进入大厂写bug!
原文始发于微信公众号(实战安全研究):记一次微信小程序渗透用1分钱充值100元
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论