freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

微信小游戏测试(续)
2023-08-24 11:37:17

前言

本文是对上一篇文章的延续,之前测试太过于粗糙,现在看看还是得好好学习,之前说需要旧版微信开启调试工具来绕过只能在微信打开的限制,这个方法可以但是没必要。针对测试人员不需要关心页面排版之类的,所以直接在浏览器添加上我们认证后的cookie和agent即可。

上一篇说到页面关键js是远程请求的,那么直接修改返回包的js即可,无须其他操作,这里可以下载咱们国产的工具Yakit,可以一键拦截所有返回包/。

准备工作

因为目标是限制微信才能打开,所以先登陆自己的微信,获取cookie和user-agent,浏览器插件我是用的Cookie-Editor和User-Agent Switcher and Manager:

1692796165_64e60505d95dd6efbc7f3.png!small

1692796217_64e6053947a79d2979609.png!small

需要注意的是,Cookie-Editor必须得先进入到页面后才能添加,所以还得先手动抓包替换cookie进入页面后再进行替换。

开始测试

加密分析

打开我们的yakit,劫持响应点击所有,就能抓到每一个返回包了。1692796502_64e60656c89f2acf2b2f4.png!small

抓到关键js后,在yakit里面可以直接打开浏览器分析,按照之前的方法,这次的最终提交参数名字是

param,还是先在js全局搜索param:

1692844689_64e6c2911a4eea6a6c1af.png!small

看到这个C函数,简单分析一下,发起一个ajax请求,请求成功后的响应数据返回给回调函数的参数t,用JSON.parse(t)把返回的数据解析为对象再读取里面的rtnCode值如果等于"SUCCESS",则把rtnData值赋给e。返回的ajax数据如下:

1692845123_64e6c443a7939110e18ec.png!small

继续发送ajax请求,从抓包数据和字面意思来看请求的地址也就是最终发送结果的接口,发送的data用g函数加密。g函数有两个形参,第一个是使用JSON.stringify()将一个包含boxNum和channel属性的对象转换成JSON字符串,第二个是变量e,也就是上面的rtnData。

那么我们现在知道只需要知道加密函数g就可以了,再全局搜索g (

1692846505_64e6c9a91decd5e3a2704.png!small?1692846505135

再输出即可。

1692846775_64e6cab719cd51904c245.png!small?1692846773881

直接修改js

既然我们抓到了返回的js,那么无需什么加密解密,直接修改返回包的js即可。

1692847014_64e6cba6d8e63390d2ccf.png!small?1692847013564


# JS加密算法
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录