万普插件库

jQuery插件大全与特效教程

JS逆向 -- 某鸭脖 xmSign参数逆向

1. 环境使用

使用手机连接电脑 adb控制手机

打开cmd 输入 adb devices 查看下面是否有设备

edge浏览器打开 edge://inspect/#devices

chrome浏览器打开 chrome://inspect/#devices

在手机中打开小程序网页等待一会,就会出现页面信息

先刷新一下网页 重新获取全部的文件

2.请求解析

接口:
activity/function/task/get

xmsign 加密数据

noncestr 加密数据

xmtimestamp 13位时间戳

3.代码分析

xmSign参数

按住 ctrl+shift+p 打开搜索

搜索 xmsign 信息发现有5条数据 全部打上断点 刷新页面

在打断点的时候 前面两个打不上 只有最后可以 那我们先测试一下最后的能不能断下来

成功断下

看到了一个md5 大概率就是md5 先把这些参数拿出来 测试一下 是原本的md5 那开始看这些参数哪来的

这个只是把r里面的数组都拼接起来 继续向上找 看看 nonceStr 在哪里生成的

看到这里 发现是从m获取到的 继续向上找


x = x && JSON.stringify(x).length > 2 && Object.keys(x).length ? Object.assign(x, m) : m,
r = g(x)

找到生成的了 nonceStr 就是 v 函数生成的了 打上断点跟进去看看

看到 Math.random() 通过一些位运算改变了一些什么 大概率就是随机生成的了 32位

现在捋一下思路

  1. 通过m获取到 nonceStr xmTimestamp 把这两个拼接起来
  2. 在把上面拼接的内容加上 p.default.enc.Base64.parse("dWgzJEhnJl5ISzg3NiVnYnhWRzdmJCVwPTBNfj5zMXg=").toString(p.default.enc.Utf8) 的盐
  3. 进行md5生成

m到q就是拼接的然后加上盐 进行md5加密


tokenSign

接口: xm/token/getUserToken

比上面多了一个参数 tokenSign

继续先来一个搜索大法 下面这个文件跟上面xmSign是一起的 直接看这个

可以直接看到用的是md5加密 n 参数就在上面生成的

直接把吧断点打上

r.default.getUrlParameter("li") 这个看方法名就是用url中获取一个数据 ,重复请求了一下发现是固定的参数 猜测一下可能是对应的当前活动页面的id

这三步就是跟上面xmSign的加密方式相同了


p.default.enc.Base64.parse("
SjdoOCZeQmdzNSNibio3aG4lIT1raDMwOCpidjIhc14=").toString(p.default.enc.Utf8)
变化了


J7h8&^Bgs5#bn*7hn%!=kh308*bv2!s^

跟上面差不多的加密就可能多了一个活动id

可以看到从接口出去的tokenSign是跟上面一样的

py实现了没有任何问题

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言