[md]---
title: 洗衣小程序逆向
date: 2023-02-27 20:15:37
tags:
小程序逆向
一个学校的洗衣平台,本想看看有没有洞可嫖之类的,可奈何实力不够,app的防护太难了
而小程序实现了简单的功能,所有就是先看看小程序
-
抓包
抓包的话,我用的手机,电脑也行
因为是扫码获取洗衣机设备信息
多次抓包ssid和sign发生变化,tokenid应该是登录给的
-
解包
解包在网上找的软件,
微信版本3.7.0.26,解包tool链接:https://pan.baidu.com/s/149IQ34rS3Rvq39koVFUgrA?pwd=52pj
提取码:52pj
-
分析
先看ssid,大体搜一下,基本确定
i.ssid=r(),i.sign=n(i)
再跟踪一下
module.exports = {
getTime: function() {
return a.apply(this, arguments);
}
};
有些虽不到,但猜一下还是可以的
sign
return i.ssid = e.sent, i.tokenId = wx.getStorageSync("TOKEN_ID") || "", i.sign = n(i),
var r = require("DAE7432162ABF0DFBC812B26691258B4.js");
Array.prototype.indexVf = function(r) {
for (var e = 0; e < this.length; e++) if (this[e] == r) return e;
}, module.exports = {
getSign: function(e) {
var t = [], n = [], i = [];
for (var s in e) t.push(s), i.push(s), n.push(e[s]);//
for (var o = i.sort(), u = "SING=HLYF", f = 0; f < o.length; f++) if ("tokenId" != o[f] && "ssid" != o[f] && "sign" != o[f]) {
var a = t.indexVf(o[f]);
"" != n[a] && null != n[a] && (u = u + "&" + o[f] + "=" + n[a]);
}
return "SING=HLYF" == (u = u.toUpperCase()) && (u = "SING=HLYF&"), u = r.hex_md5(u);
}
};
稍作修改,抠几个函数下来
function sign(e) {
Array.prototype.indexVf = function (r) {
for (var e = 0; e < this.length; e++) if (this[e] == r) return e;
}
var t = [], n = [], i = [];
for (var s in e) t.push(s), i.push(s), n.push(e[s]);
for (var o = i.sort(), u = "SING=HLYF", f = 0; f < o.length; f++) if ("tokenId" != o[f] && "ssid" != o[f] && "sign" != o[f]) {
var a = t.indexVf(o[f]);
"" != n[a] && null != n[a] && (u = u + "&" + o[f] + "=" + n[a]);
}
return "SING=HLYF" == (u = u.toUpperCase()) && (u = "SING=HLYF&"), u = md5(u);
}
ok,请求成功
对于这种我只能想到一些逻辑漏洞,找了半天也没有什么头绪,
jscode略了
[/md] |