某快药sign签名算法逆向解析,JS代码没有混淆,比较直白,稍微能看懂js代码,能够 console.log 打印输出,再加上耐心,基本上都是可以调试出来。
不知道是不是网站很老,没有维护了,感觉sign直接复制过去是可以拿到数据,现在网站几乎没有多少数据了,不过逆向解析过程可以学习参考练手使用。
除了md5加密,还有字典值获取,循环,字符串拼接等等,有写过都能看出来。
网址:
代码语言:javascript
复制
aHR0cDovL3d3dy5kZGt5LmNvbS9jb21tb2RpdHkuaHRtbD9kZGt5Y2FjaGU9YTdiMTllODc5ZDJmMmYyNzlkMzU2ZjVhZmE2ZDVjZmY=
- 直接搜关键字 sign 看到可疑的js文件
2.点开js,格式解析,进入看看
3.继续搜索关键字 sign 有四个匹配项
4.找到最可疑的js代码段很明显
可以通过js代码:
代码语言:javascript
复制
for (var y = t.get("method") + p + r, v = MD5(y), k = e + "?sign=" + v, w = 0; w < l.length; w++)
(t.get(l[w]) + "").indexOf("+") >= 0 || -1 != (t.get(l[w]) + "").indexOf("&") ? k += "&" + l[w] + "=" + encodeURIComponent(t.get(l[w])) : "pageUrl" == l[w] ? k += "&" + l[w] + "=" + encodeURIComponent(t.get(l[w])) : k += "&" + l[w] + "=" + t.get(l[w]);
return k
很直白的看到 sign 的生成过程:
代码语言:javascript
复制
y = t.get("method") + p + r,
v = MD5(y),
sign=v,
5.我们在 return 处打上断点,看看值为多少
6.通过打上断点,刷新调试后,各个值都显现出来了
7.尝试抠出关键js代码段
8.取对应的参数的值
9.console.log 打印输出 各个值
python 中 md5 加密的使用:
代码语言:javascript
复制
import hashlib import time import json
def Md5(password):
md5 = hashlib.md5()
md5.update(password.encode('utf-8'))
return md5.hexdigest()