阿里巴巴sign参数解密

api链接:

https://h5api.m.1688.com/h5/mtop.1688.trade.service.mtoprateservice.querydsrratedatav2/1.0/?jsv=2.4.8&appKey=12574478&t=1645436361249&sign=be86ae4711eeb843e1a2ca2e03973731&api=mtop.1688.trade.service.MtopRateService.queryDsrRateDataV2&v=1.0&type=jsonp&isSec=0&timeout=20000&dataType=jsonp&callback=mtopjsonp7&data={"offerId":652875095623,"loginId":"tesixin1688","scene":"shop"}

抓包

阿里巴巴sign参数解密_第1张图片
方法一:搜索sign或其他参数
从这里可以看到加密参数只有sign,搜索sign参数
阿里巴巴sign参数解密_第2张图片
发现匹配出来好多sign的参数,换种思路,试试搜一下其他参数
阿里巴巴sign参数解密_第3张图片
方法二:利用栈跟踪
当然,这里我们还可以利用栈跟踪
阿里巴巴sign参数解密_第4张图片
点进去搜岁哦代码中的sign参数
阿里巴巴sign参数解密_第5张图片
接下来打断点调试即可,就不多介绍。。。。。。
每个参数代表的含义

(o.token + '&' + s + '&' + a + '&' + n.data)
// 断点调试可以发现o.token是token中 _m_h5_tk的前半段,s是时间戳,即请求参数里边的t,a是appKey,n.data是参数中的data

直接上我抠出来的js代码

function hhh(e) {
              function t(e, t) {
                return e << t | e >>> 32 - t
              }
              function n(e, t) {
                var n,
                o,
                r,
                i,
                a;
                return r = 2147483648 & e,
                i = 2147483648 & t,
                a = (1073741823 & e) + (1073741823 & t),
                (n = 1073741824 & e) & (o = 1073741824 & t) ? 2147483648 ^ a ^ r ^ i : n | o ? 1073741824 & a ? 3221225472 ^ a ^ r ^ i : 1073741824 ^ a ^ r ^ i : a ^ r ^ i
              }
              function o(e, o, r, i, a, s, p) {
                return e = n(e, n(n(function (e, t, n) {
                  return e & t | ~e & n
                }(o, r, i), a), p)),
                n(t(e, s), o)
              }
              function r(e, o, r, i, a, s, p) {
                return e = n(e, n(n(function (e, t, n) {
                  return e & n | t & ~n
                }(o, r, i), a), p)),
                n(t(e, s), o)
              }
              function i(e, o, r, i, a, s, p) {
                return e = n(e, n(n(function (e, t, n) {
                  return e ^ t ^ n
                }(o, r, i), a), p)),
                n(t(e, s), o)
              }
              function a(e, o, r, i, a, s, p) {
                return e = n(e, n(n(function (e, t, n) {
                  return t ^ (e | ~n)
                }(o, r, i), a), p)),
                n(t(e, s), o)
              }
              function s(e) {
                var t,
                n = '',
                o = '';
                for (t = 0; t <= 3; t++) n += (o = '0' + (e >>> 8 * t & 255).toString(16)).substr(o.length - 2, 2);
                return n
              }
              var p,
              u,
              c,
              d,
              l,
              f,
              m,
              g,
              h,
              v;
              for (p = function (e) {
                for (var t, n = e.length, o = n + 8, r = 16 * ((o - o % 64) / 64 + 1), i = new Array(r - 1), a = 0, s = 0; s < n; ) a = s % 4 * 8,
                i[t = (s - s % 4) / 4] = i[t] | e.charCodeAt(s) << a,
                s++;
                return i[t = (s - s % 4) / 4] = i[t] | 128 << (a = s % 4 * 8),
                i[r - 2] = n << 3,
                i[r - 1] = n >>> 29,
                i
              }(e = function (e) {
                e = e.replace(/\r\n/g, '\n');
                for (var t = '', n = 0; n < e.length; n++) {
                  var o = e.charCodeAt(n);
                  o < 128 ? t += String.fromCharCode(o) : o > 127 && o < 2048 ? (t += String.fromCharCode(o >> 6 | 192), t += String.fromCharCode(63 & o | 128)) : (t += String.fromCharCode(o >> 12 | 224), t += String.fromCharCode(o >> 6 & 63 | 128), t += String.fromCharCode(63 & o | 128))
                }
                return t
              }(e)), m = 1732584193, g = 4023233417, h = 2562383102, v = 271733878, u = 0; u < p.length; u += 16) c = m,
              d = g,
              l = h,
              f = v,
              m = o(m, g, h, v, p[u + 0], 7, 3614090360),
              v = o(v, m, g, h, p[u + 1], 12, 3905402710),
              h = o(h, v, m, g, p[u + 2], 17, 606105819),
              g = o(g, h, v, m, p[u + 3], 22, 3250441966),
              m = o(m, g, h, v, p[u + 4], 7, 4118548399),
              v = o(v, m, g, h, p[u + 5], 12, 1200080426),
              h = o(h, v, m, g, p[u + 6], 17, 2821735955),
              g = o(g, h, v, m, p[u + 7], 22, 4249261313),
              m = o(m, g, h, v, p[u + 8], 7, 1770035416),
              v = o(v, m, g, h, p[u + 9], 12, 2336552879),
              h = o(h, v, m, g, p[u + 10], 17, 4294925233),
              g = o(g, h, v, m, p[u + 11], 22, 2304563134),
              m = o(m, g, h, v, p[u + 12], 7, 1804603682),
              v = o(v, m, g, h, p[u + 13], 12, 4254626195),
              h = o(h, v, m, g, p[u + 14], 17, 2792965006),
              m = r(m, g = o(g, h, v, m, p[u + 15], 22, 1236535329), h, v, p[u + 1], 5, 4129170786),
              v = r(v, m, g, h, p[u + 6], 9, 3225465664),
              h = r(h, v, m, g, p[u + 11], 14, 643717713),
              g = r(g, h, v, m, p[u + 0], 20, 3921069994),
              m = r(m, g, h, v, p[u + 5], 5, 3593408605),
              v = r(v, m, g, h, p[u + 10], 9, 38016083),
              h = r(h, v, m, g, p[u + 15], 14, 3634488961),
              g = r(g, h, v, m, p[u + 4], 20, 3889429448),
              m = r(m, g, h, v, p[u + 9], 5, 568446438),
              v = r(v, m, g, h, p[u + 14], 9, 3275163606),
              h = r(h, v, m, g, p[u + 3], 14, 4107603335),
              g = r(g, h, v, m, p[u + 8], 20, 1163531501),
              m = r(m, g, h, v, p[u + 13], 5, 2850285829),
              v = r(v, m, g, h, p[u + 2], 9, 4243563512),
              h = r(h, v, m, g, p[u + 7], 14, 1735328473),
              m = i(m, g = r(g, h, v, m, p[u + 12], 20, 2368359562), h, v, p[u + 5], 4, 4294588738),
              v = i(v, m, g, h, p[u + 8], 11, 2272392833),
              h = i(h, v, m, g, p[u + 11], 16, 1839030562),
              g = i(g, h, v, m, p[u + 14], 23, 4259657740),
              m = i(m, g, h, v, p[u + 1], 4, 2763975236),
              v = i(v, m, g, h, p[u + 4], 11, 1272893353),
              h = i(h, v, m, g, p[u + 7], 16, 4139469664),
              g = i(g, h, v, m, p[u + 10], 23, 3200236656),
              m = i(m, g, h, v, p[u + 13], 4, 681279174),
              v = i(v, m, g, h, p[u + 0], 11, 3936430074),
              h = i(h, v, m, g, p[u + 3], 16, 3572445317),
              g = i(g, h, v, m, p[u + 6], 23, 76029189),
              m = i(m, g, h, v, p[u + 9], 4, 3654602809),
              v = i(v, m, g, h, p[u + 12], 11, 3873151461),
              h = i(h, v, m, g, p[u + 15], 16, 530742520),
              m = a(m, g = i(g, h, v, m, p[u + 2], 23, 3299628645), h, v, p[u + 0], 6, 4096336452),
              v = a(v, m, g, h, p[u + 7], 10, 1126891415),
              h = a(h, v, m, g, p[u + 14], 15, 2878612391),
              g = a(g, h, v, m, p[u + 5], 21, 4237533241),
              m = a(m, g, h, v, p[u + 12], 6, 1700485571),
              v = a(v, m, g, h, p[u + 3], 10, 2399980690),
              h = a(h, v, m, g, p[u + 10], 15, 4293915773),
              g = a(g, h, v, m, p[u + 1], 21, 2240044497),
              m = a(m, g, h, v, p[u + 8], 6, 1873313359),
              v = a(v, m, g, h, p[u + 15], 10, 4264355552),
              h = a(h, v, m, g, p[u + 6], 15, 2734768916),
              g = a(g, h, v, m, p[u + 13], 21, 1309151649),
              m = a(m, g, h, v, p[u + 4], 6, 4149444226),
              v = a(v, m, g, h, p[u + 11], 10, 3174756917),
              h = a(h, v, m, g, p[u + 2], 15, 718787259),
              g = a(g, h, v, m, p[u + 9], 21, 3951481745),
              m = n(m, c),
              g = n(g, d),
              h = n(h, l),
              v = n(v, f);
              return (s(m) + s(g) + s(h) + s(v)).toLowerCase()
            };

// 测试
mms = "0c07ed97942809bd4b23a4e4d28ac3f0&1645436361249&12574478&{\"offerId\":652875095623,\"loginId\":\"tesixin1688\",\"scene\":\"shop\"}"
console.log(hhh(mms))

运行结果
在这里插入图片描述

转换成python代码

import hashlib

str = '0c07ed97942809bd4b23a4e4d28ac3f0&1645436361249&12574478&{"offerId":652875095623,"loginId":"tesixin1688","scene":"shop"}'
str_md5 = hashlib.md5(str.encode(encoding='utf-8')).hexdigest()
print(str_md5)
# be86ae4711eeb843e1a2ca2e03973731

对比上边的sign参数(be86ae4711eeb843e1a2ca2e03973731),一模一样,解密就到这里了

你可能感兴趣的:(web逆向,web安全,python)