zkz6969 发表于 2023-2-27 22:16

洗衣小程序逆向

---
title: 洗衣小程序逆向
date: 2023-02-27 20:15:37
tags:
---
## 小程序逆向

一个学校的洗衣平台,本想看看有没有洞可嫖之类的,可奈何实力不够,app的防护太难了

而小程序实现了简单的功能,所有就是先看看小程序

- 抓包

抓包的话,我用的手机,电脑也行

因为是扫码获取洗衣机设备信息

![](https://i.328888.xyz/2023/02/27/eg2AN.png)

多次抓包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);
      }
};
```

有些虽不到,但猜一下还是可以的

![](https://i.328888.xyz/2023/02/27/egHrV.png)

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 == 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);//
      for (var o = i.sort(), u = "SING=HLYF", f = 0; f < o.length; f++) if ("tokenId" != o && "ssid" != o && "sign" != o) {
            var a = t.indexVf(o);
            "" != n && null != n && (u = u + "&" + o + "=" + n);
      }
      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 == r) return e;
    }
    var t = [], n = [], i = [];
    for (var s in e) t.push(s), i.push(s), n.push(e);
    for (var o = i.sort(), u = "SING=HLYF", f = 0; f < o.length; f++) if ("tokenId" != o && "ssid" != o && "sign" != o) {
      var a = t.indexVf(o);
      "" != n && null != n && (u = u + "&" + o + "=" + n);
    }

    return "SING=HLYF" == (u = u.toUpperCase()) && (u = "SING=HLYF&"), u = md5(u);
}
```

![](https://i.328888.xyz/2023/02/27/egl9o.png)

ok,请求成功

对于这种我只能想到一些逻辑漏洞,找了半天也没有什么头绪,

jscode略了

侃遍天下无二人 发表于 2023-2-27 23:42

只要服务器做了二次校验一般来说就没啥漏洞了,我学校的洗衣机app我把余额锁定为99.99元,每次用余额支付的时候这个选项是激活了,但服务器照样返回余额不足。
不过改代码还是有点用的,在app上实现了免扫码启动洗衣机,以及一键查看洗衣机占用情况,不用大老远跑楼下看占用了,还删掉了所有能看见的广告

86618513 发表于 2023-2-28 00:12

zhugyun08 发表于 2023-2-28 05:27

谢谢分享

panfulong9581 发表于 2023-2-28 07:50

感谢你的分享 很实用的技术

sdieedu 发表于 2023-2-28 07:56

侃遍天下无二人 发表于 2023-2-27 23:42
只要服务器做了二次校验一般来说就没啥漏洞了,我学校的洗衣机app我把余额锁定为99.99元,每次用余额支付的 ...

以为你打算白嫖呢呵呵呵

twinsdeng 发表于 2023-2-28 08:14

感谢你的分享

ZLLLL 发表于 2023-2-28 08:27

学习了感谢分享

xcz668 发表于 2023-2-28 08:28

好的 谢谢 学学小程序

jobs_steven 发表于 2023-2-28 08:30

sdieedu 发表于 2023-2-28 07:56
以为你打算白嫖呢呵呵呵

分析这玩意儿不就是为了白嫖吗?{:1_918:}
页: [1] 2 3
查看完整版本: 洗衣小程序逆向