赞
踩
保姆向文章:记一次短暂的小程序解密之旅,这应该是本站最详细的小程序文章了。
本文章仅用作技术交流,严禁恶意利用。恶意利用所造成的后果均由恶意使用者承担。
因某客户系统通信全程密文,我就自告奋勇的接下了任务。
小程序包解密
wxappUnpacker-master
1、反编译小程序。
2、动态调试获取明文。
3、payload加密。
不墨迹直接开干。
打开pc微信搜索小程序:
搜到小程序后打开一次即可。
小程序包目录:C:\Users\(用户名)\Documents\WeChat Files\Applet
会看到一堆的包,查看修改日期,时间为第一次打开小程序的时间。找不到就删掉这些文件,删掉pc微信小程序,重新搜索打开小程序。这里会刷出来
使用小程序包解密工具,打开目录,选中包:(不要移动包的位置,会报错)
解密成功,如果提示获取失败,可以检查一下包的位置是否在默认位置。
解密后的文件在小程序包解密工具的目录下的wxpack。
将解密文件复制进wxappUnpacker-master,配置环境:
先安装node,然后在wxappUnpacker-master文件夹内打开cmd,执行下面命令:
npm install npm install esprima npm install css-tree npm install cssbeautify npm install vm2 npm install uglify-es npm install js-beautify
安装完后在wxappUnpacker-master文件夹内打开cmd执行命令:
node .\wuWxapkg.js 解密文件名.wxapkg
成功:
此时在wxappUnpacker-master文件夹内会保存小程序的源码:
下载微信开发者工具打开此文件夹:(初次使用需要手机扫码登录微信)
简单审计找到传参点,设置console.log()打印加密前的明文:
设置完毕点击相关功能点:
获取到明文:
找到加密后的变量,设置console.log()打印:
使用相关功能点后,获取密文。
第一种方式:模拟器下载微信登录抓包,太麻烦了,而且手机会掉线。
我推荐第二种:pc端抓包
代理设置方法1:
代理设置方法2:用win10自带的代理设置,不用退微信重登:
配置完即可burp抓包了。这个小程序虽然有基于时间的加密,但是服务端并不验证时间,所以尽情渗透。
客户端有加密js的源码,功力深的表哥们可以直接利用算法写扫描器进行漏洞探测。加解密的利用也是我准备学习的部分。
1、通过增加基于时间的验证,来确保数据包的真实性。
2、加一个Referer检测的中间件,所有Referer里包含“devtools”的请求全部返回500。例如:https://servicewechat.com/wx05ac2038cb1a1286/devtools/page-frame.html
可以看出,通过开发者工具发出的请求Referer里和普通手机发出的请求的唯一区别就是原本的数字变成了devtools,所以可以加个中间件拦截所有Referer里包含devtools的请求。
3、对appid授权检测。
文章没有什么太多的难点,哪怕审计小程序源码,依然没有涉及了太多的js知识,基本都可以看懂。渗透有既需要我们把简单零散的知识,加以整合利用的能力;也需要我们拥有足够的知识渗透的更深。如果我会js就可以完成最后一步了。这次渗透让我再次想起一个道理:知识面和知识深度都很重要!
文中打码太多,实属无奈之举,还请各位大佬原谅。感谢大家看完!欢迎一起讨论!
本文作者:chanra, 转载请注明来自FreeBuf.COM
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。