某常见 cookie 加密逻辑分析 (加速乐 - jsl)
## 今日网站我测试的这个站不太好发,涉及 gov,所以我找了找另一个用同一套加密的站,大家将就一下
aHR0cHM6Ly93d3cuY252ZC5vcmcuY24vZmxhdy9saXN0Lmh0bQ==
因为是另一篇文章引用到这篇了,所以先发一下,望大佬们不要嫌弃
#### 加密分析
看标题就知道本次文章的分析主题是 cookie 加密,所以打开测试网站,看看 cookie
![](http://tc.xianyucoder.cn/blog20210722093106.png)
框选出来的就是我们要分析的字段啦
大大的`jsl`,极具辨识度
开一个无痕窗口看看能不能抓到包
接下来应该是有图的,但是 Chrome 对于网站 状态码为 521 的请求展示处理不是很好
【假装有图】
通过上图,只能看到状态码 521 的红色请求一闪而过,我`esc`键都按烂了也没断下来,所以果断换了 Fiddler
通过 Fiddler 抓包,看到这个网站有下面几个请求
![](http://tc.xianyucoder.cn/blog20210722093819.png)
现在分别看看这 3 个请求
请求 1、单纯的请求网页,没有请求头中没有 cookie,返回了个`script`,包含了一串`js`代码,并且在`response header`中携带了`set-cookie`
![](http://tc.xianyucoder.cn/blog20210722094401.png)
![](http://tc.xianyucoder.cn/blog20210722094436.png)
请求 2、请求带上了 `cookie`,cookie 分别为`__jsluid_s`和`__jsl_clearance_s`,返回了另一个段`js`代码
![](http://tc.xianyucoder.cn/blog20210722094848.png)
请求 3、请求还是携带了两个`cookie`,但是`__jsl_clearance_s`发生了改变,请求返回的是正常的网站页面
经过上面的分析,这两段返回的 js 应该就是加密的关键
现在我们需要分析
第二个请求里`__jsl_clearance_s`怎么来的?
第三个请求中`__jsl_clearance_s`是怎么改的?
### 加密分析
先看第一段代码
```js
document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('_')+('s')+('=')+(-~{}+'')+((1+)/+'')+((1<<1)+'')+(2+4+'')+(4+5+'')+(-~{}+'')+((1<<3)+'')+(*(3)+'')+((2)*+'')+(1+5+'')+('.')+(~~[]+'')+((+0>>2)+'')+(2+7+'')+('|')+('-')+(+!+[]+'')+('|')+('z')+('G')+('A')+(9+'')+('N')+('Y')+('U')+('%')+((1<<1)+'')+('B')+('g')+('Y')+('R')+('W')+('V')+('Z')+('b')+('W')+('m')+('i')+('S')+(2+4+'')+('X')+('w')+('v')+('A')+('Q')+('P')+('g')+('%')+((1+>>2)+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+((1|2)+'')+(1+5+'')+((+[])+'')+((+false)+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search
```
在编辑器里改改就能跑出下面的逻辑
![](http://tc.xianyucoder.cn/blog20210722095436.png)
这样第一个疑问就得到解答了
现在看第二段的`js`代码
这个代码比较长,经过了混淆
![](http://tc.xianyucoder.cn/blog20210722095949.png)
结尾部分调用了`go`函数,并传入了如下参数
```js
{
"bts": ["1626918646.167|0|xcX", "rLB%2FdFGil%2FWSDtvv5CSWRc%3D"],
"chars": "vyPzcSzkrMmFNwvtkEHtwG",
"ct": "30ef50b82076b2284fa6ca90acbb5938",
"ha": "md5",
"tn": "__jsl_clearance_s",
"vt": "3600",
"wt": "1500"
}
```
这里可以不解混淆分析,也可以使用现有的各类姐混淆工具
推荐解混淆工具如下
1、x老板 - 一键解 ob 混淆工具包
2、xx学在线解混淆 - http://tool.yuanrenxue.com/decode_obfuscator
3、xx在线解混淆 - http://ob.nightteam.cn/
无广告
这里用哪个都可以哈,如果你有更好的工具欢迎交流
![](http://tc.xianyucoder.cn/blog20210722102049.png)
解混淆后的加密就没有什么难度了,同时也可以看到代码里的检测点。
![](http://tc.xianyucoder.cn/blog20210722102113.png)
感兴趣的可以记录下来,下次不用解混淆直接套环境就可以直接运行了
简单说,这个 js 的主体逻辑就是`go`函数,它主要完成的就是将`__jsl_clearance_s`分成两个部分,分别和传入 go 方法中传入的字符串进行拼接,然后根据`ha`中传入的参数进行 hash,将 hash 的结果进行比对,比对正确返回 cookie
注意:这里的 hash 有几种算法,md5、sha1、sha256
![](http://tc.xianyucoder.cn/blog20210722103454.png)
请求结果截图如下
![](http://tc.xianyucoder.cn/blog20210722104813.png)
以上就是今天的全部内容了,咱们下次再会~ JuncoJet 发表于 2021-9-15 09:35
cookie加密的意义何在?session在服务器上,cookie应该只是个随机标签而已
这里的cookie类似一个随机token,用于防止重放攻击用或反爬虫,每一次都会新生成一个,不对的话,页面不会返回正常数据 cookie加密的意义何在?session在服务器上,cookie应该只是个随机标签而已 JuncoJet 发表于 2021-9-15 09:35
cookie加密的意义何在?session在服务器上,cookie应该只是个随机标签而已
这里的 cookie 加密并不是为了保持会话 大佬,求教有什么可以系统学的推荐教程嘛 楼主好大的胆子{:301_976:} eeeeda 发表于 2021-9-16 16:18
想知道如何爬取全网的视频无水印下载,包括vip和超前点播
我也不知道哦:rggrg 可以!学习学习!!!