0x01 前言
为什么要反编译小程序?很多小程序会有自己单独的 JS 文件,JS 文件中可能会存在路由接口 ,IP地址 ,URL甚至账户密码等。反编译小程序是为了发现潜在漏洞,如接口地址、敏感信息等。通过解密 wxapkg 文件并提取源码,可使用工具分包并反编译,最后通过微信开发者工具打开查看发现漏洞。
末尾可领取挖洞资料文件
0x02 漏洞发现
环境准备:(市面上有很多反编译工具选自己喜欢的就行)
npm installnpm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
访问小程序后小程序会在
WeChat FilesApplet
目录下生成wxapkg文件
node wuWxapkg.js wxd043b3f784085f1a.wxapkg
反编译出源码
分包
node wuWxapkg.js -s=C:Desktopwxpackwx21ed9xxxxxxxac37f wx21xxxxxxx6ac37f.wxapkg
1.主包反编node wuWxapkg.js xxx ## xxx为主包的路径##
2.子包反编node wuWxapkg.js xxx1 -s= xxx2 ## xxx1为子包的文件路径,xxx2为反编主包生成的文件路径
node wuWxapkg.js wxd043b3xxx085f1a.wxapkg -s=C:Desktop解密wxpackwxd043b3f784085f1a
将主包文件夹名称重命名为wxd043b3f784085f1
因为分包和主包被解密软件重命名的名称是一样的,如果不重命名反编译就会报错
使用微信开发者工具打开
#下载地址
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
搜索关键字 path=
常见敏感接口搜索关键词:
list
user
api
routes
home
List
常见下载接口搜索关键词:
path
file
down
直接构造/etc/passwd
在后面的渗透中又发现了sign签名
阅读源码找路由附加的逻辑即可,找到相关的签名逻辑:
整体就是先将参数按照参数名进行排序后,进行拼接,然后再加上 cmscms 字符串,最后调用MD5进行处理即可。
后续就是一贯的测试思路了。
0x03 总结
最后总结,反编译后可重点关注敏感接口关键词,如 list、user、api 等。喜欢的师傅可以点赞转发支持一下谢谢!
0x04
原文始发于微信公众号(渗透安全HackTwo):记一次从小程序反编译到任意文件下载|挖洞技巧
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论