微信小程序前端加解密逆向分析

这篇具有很好参考价值的文章主要介绍了微信小程序前端加解密逆向分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景介绍

某小程序渗透测试项目,测试时发现请求包内容进行了加密

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

分析过程

1.获取wxapkg

小程序文件目录:

使用网易Mumu模拟器,开启root权限,安装手机微信并访问指定小程序,然后打开RE文件管理器,在data/data/com.tencent.mm/MicroMsg会生成一个md5加密命名的文件夹,在该文件夹下的appbrand/pkg目录下找到.wxapkg后缀结尾的文件,其中只有几MB大小的为刚刚打开的小程序的文件。然后复制到共享文件夹到就可以在本地进行反编译了。

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

2.反编译wxapkg

工具名称:wxappUnpacker

链接: https://pan.baidu.com/s/12WPychwfjMfzgSgIi9aUGA?pwd=fpni 提取码: fpni

安装依赖

sudo npm install esprima -g
sudo npm install css-tree -g
sudo npm install cssbeautify -g
sudo npm install vm2 -g
sudo npm install --save uglify-js

由于部分库已经不支持了,需要修改wuJs.js文件中的引用,将uglify-es改为uglify-js并保存

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

接下来执行以下命令反编译小程序

node wuWxapkg.js -d '/path/to/xxx.wxapkg'
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

解包后会在xxx.wxapkg目录下生成同名的文件,里面为小程序的源代码

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

3.安装微信开发者工具

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全
下载并安装完成后,打开微信开发者工具,选择以游客模式访问,然后点击右上角的导入按钮,选择反编译后的文件夹即可

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

点击左上角关闭模拟器

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

4.加密代码定位

根据经验判断,请求包中的参数可能使用了AES或者DES加密算法,所以我们可以在源代码中直接搜索关键词即可,如aesdesencryptdecryptenc.Utf8.parse(等。

点击左上角的搜索按钮,输入encrypt,逐行分析,定位到以下代码片段,很明显此处的三段字符串分别代表了AES加密算法keyiv,但是我们并不知道用的加密算法中使用的paddingmode等参数
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全
在这段代码中,变量f是加密密钥(key),变量m是初始化向量(iv)。可以看到,变量f是通过对l.appData.securityChoice进行奇偶性判断后选择不同的字符串进行赋值,然后将其转换为UTF-8格式的字节数组,也就是说key为c29a3a629280e686d37a3a629281f797其中的一个。而变量m则是直接将一个固定的字符串转换为UTF-8格式的字节数组。最后,这些变量被用于调用一个名为d.encrypt的加密函数,将参数g进行加密。
所以,我们就得到以下信息,后面我们会用到

key:c29a3a629280e686 iv:ca3762af61e59520
或者
key:d37a3a629281f797 iv:ca3762af61e59520

接下来我们可以在搜索aes等关键词,看看有没有新发现

如下图所示,我们成功定位到了aes的加解密方法,并且得到了mode为CBC 、padding为Pkcs7 、字符集为Utf8 、输出类型为hex
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

5.验证分析结果

在线加解密网站:http://tool.chacuo.net/cryptaes

使用第一对key和iv进行解密,发现无法解密成功

key:c29a3a629280e686 iv:ca3762af61e59520

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

使用第二对key和iv进行解密,发现解密成功

key:d37a3a629281f797 iv:ca3762af61e59520

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

利用过程

1.生成加密JS代码

WT-JS_DEBUG是一款功能强大的易语言JScript调试辅助工具。WT-JS_DEBUG包括自带各种加密函数库,可一键生成,是一款JS调试器,JavaScript调试工具。它支持批量加密、批量解密、多次加密等功能,对于开发人员来说,是一款十分实用的JS调试工具。

工具:WT-JS.exe
链接: https://pan.baidu.com/s/1G30R-cbepEg97A1BECqwaw?pwd=fiy4 提取码: fiy4

打开WT-JS.exe,然后点击CryptoJS按钮

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

选择AES,选择对应的ModePaddingKeyivEncOutput等信息
然后将密文信息粘贴到程序中点击解密,如果能看到解密后的内容话证明配置成功了

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

接下来,点击生成当前方案JS脚本,此时剪切板中已经复制好了生成的代码

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

2.BurpCrypto插件

项目地址:https://github.com/whwlsfb/BurpCrypto

将生成的JS代码粘贴到BurpCrypto插件的Exec Js模块中,并按照如下方式添加加解密的处理器

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

3.调用加解密

在请求包中,选中加密字段,右键选择BurpCrypto插件中添加的处理器AES_Decrypt,即可完成解密

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

同样的,需要进行加密时选择AES_Encrypt即可文章来源地址https://www.toymoban.com/news/detail-743824.html

小程序前端代码加密,渗透测试,微信小程序,网络安全,安全
小程序前端代码加密,渗透测试,微信小程序,网络安全,安全

到了这里,关于微信小程序前端加解密逆向分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序逆向分析

    WeChatAppEx.exe 版本:2.0.6609.4 以融智云考学生端为例。 网上已经有关于微信小程序解密的非常优秀的文章,本着学习的目的便不参考相关内容。 笔者水平实在有限,如发现纰漏,还请读者不吝赐教。 如涉及侵权,请联系作者处理。 工具:火绒剑 首先看看打开一个小程序微信

    2024年01月16日
    浏览(27)
  • Base64加密解密,【微信小程序】,最新Android面试合集

    import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import tsou.com.encryption.R; import tsou.com.encryption.base64.Base64Utils; /** 一、什么Base64算法? Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一, Base64并不是安全

    2024年03月24日
    浏览(31)
  • 使用base64加密解密的多种方法:包含pc端和微信小程序

    1、pc端 Window 对象 Window 对象表示浏览器中打开的窗口。 平常在开发pc端浏览器的时候。如果要加密或者解密成为一个 base-64 编码的字符串。我们都可以使用Window 对象里的对象方法: atob() 解码一个 base-64 编码的字符串。 btoa() 创建一个 base-64 编码的字符串 我们可以直接在浏览

    2024年02月15日
    浏览(32)
  • 文章同步--飞鹤官方商城加密逆向分析(小程序)、蝉管家滑块加密参数逆向分析

    飞鹤官方商城加密逆向分析(小程序)       蝉管家滑块加密参数逆向分析      

    2024年02月12日
    浏览(205)
  • 微信小程序|前端技术主要框架分析

    1.框架 微信提供了一套自己的用于开发小程序的前端框架,和目前主流的前端框架相比,其既有类似的地方,也有特殊的地方。 特殊的地方在于其只能在微信小程序开发工具内使用,并做了相对严格的使用和配置限制,开发者必须按照其规定的用法来使用。一些外部的框架和

    2024年02月11日
    浏览(32)
  • 微信小程序登录流程(包含前端、后端代码)

    在微信小程序的开发过程中,如果想要保留 用户 的 数据 (比如: 操作记录 、 购物车信息 等等)就必须要 用户 登陆。为什么呢?比如说,数据库中有一条 数据 你如何知道这条数据属于谁?属于那个用户呢?这就需要用户登录来获取 用户 的 唯一标识 从而确定这条数据是属

    2024年02月03日
    浏览(32)
  • 关于渗透实战中分析微信小程序前端代码的诸多问题

    Android版本和微信版本在7.0以上,不再信任用户安装的证书,只信任软件内置的证书,这样无法抓包。 开启代理(例如:fiddler)进行抓包,发现小程序页面加载不全,且无法抓到https的包。此方法行不通了。 使用夜神模拟器配合 burpsuite 进行抓包。夜神模拟器不一定要老版本

    2024年02月05日
    浏览(32)
  • uniapp开发微信小程序使用base64进行加密解密

    涉及场景:uniapp开发微信小程序需要使用base64进行加解密。 涉及依赖包:base-64,utf8 涉及到问题描述:首先尝试引入js-base64这个包,经过尝试后发现无法使用,为什么无法使用不晓得,没研究出来。再搜索中找到一篇关于《uniapp使用base64》的文章,文章中使用base64这个包,经

    2024年02月16日
    浏览(34)
  • 微信小程序逆向

    微信小程序逆向 大致思路:抓包分析–加密参数查找–小程序源码获取–分析加密逻辑 返回结果json中,data都是加密数据,初看一看为base64。 微信包名:com.tencent.mm 小程序源码:/data/data/com.tencent.mm/MicroMsg/项目/appbrand/pkg 我用的夜神模拟器(nox_adb): ls -l 查看时间 发现aaba04b

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包