首页 文章详情

爬虫|Js逆向某加速 cookie 加密分析

Python编程与实战 | 401 2021-07-29 09:17 0 0 0
UniSMS (合一短信)

声明:本文只用于学习研究,禁止用于非法用途,如有侵权,请联系我删除,谢谢!

大家好,我是村长~~

今天给大家分享一个常见的 cookie 加密反爬,这个加密以前也遇到过,不过只有一层

现在升级了,做了两层加密,不过看起来套路差不多,问题不太!

话不多说,地址如下:

aHR0cDovL3N3ai5oZWZlaS5nb3YuY24vY29udGVudC9jb2x1bW4vNjc5NDAyMT9wYWdlSW5kZXg9MQ==

抓包

浏览器打开抓包,熟悉的 512 响应码,以及 __jsl_clearance

5d77ad7b832cd611b414cb1b1af68603.webp

这个 521 的请求浏览器是看不到响应内容的,需要借助 fiddler 来看

07ff49b97469c84c8a3c80dcdd6839a6.webp

可以看到,在经过了三次请求之后,才得到正常的响应内容

第二次和第三次请求中的 cookie 都带上了 __jsl_clearance 且第二次与第三次的值也不相同

所以这两次返回的内容对 cookie 作了设置,我们来分析下

分析

先来看第一次返回的 JS 代码

<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('=')+(-~0+'')+(3+3+'')+(0+1+0+1+'')+(9-1*2+'')+(1+3+'')+(-~(4)+'')+(1+6+'')+(~~[]+'')+(9+'')+(0+1+0+1+'')+('.')+(1+2+'')+(1+3+'')+((1+[4]>>1)+'')+('|')+('-')+(-~{}+'')+('|')+('b')+('n')+('h')+(-~[6]+'')+('v')+('d')+('K')+(~~[]+'')+('o')+('n')+('b')+('R')+('I')+('r')+('M')+('c')+('x')+('p')+('E')+('%')+(-~1+'')+('F')+('%')+(1+1+'')+('F')+('D')+('r')+('q')+('y')+((1<<3)+'')+(~~{}+'')+('%')+(1+2+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+(-~[2]+'')+((1+[2])/[2]+'')+(~~[]+'')+(~~false+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search</script>

简单粗暴的对 cookie 进行了赋值,可直接执行看输出结果

4619c4e535ba46466cde1b5d2f37d284.webp

这个很简单,可以看到这个第一次生成的 cookie 加入到了第二请求的 headers 里面

再来看第二次请求生成的 JS 代码

经过一定的混淆,我们借助还原工具直接还原

混淆还原工具:http://tool.yuanrenxue.com/decode_obfuscator

还原后很清楚了,主要是通过函数 go() 生成结果

81251a67950f8eb808d4e12aedd315b5.webp

直接运行,提示 window 未定义,补下相关的检测即可

补完之后运行,可以对比下结果

e79f60d2a38c8f0733d3c952fed85935.webp

cookie 值一模一样

注意下这里总共有三种加密算法,分别是 md5 sha1 sha256

而采用哪种加密方式,是根据函数 go() 中的 ha 字段来选择哪种加密!

所以整个流程就是这样:

  • 第一请求生成 cookie
  • 第二次请求带上第一次生成的 cookie,经过 go() 再次生成 cookie
  • 第三次带上第二次生成的 cookie,返回正常 html

按这个流程写上代码,就能获取到正常的内容

b12dff74edb449f36bb149555d26d1b9.webp

源码地址:https://github.com/GoJerry/JSCrack/tree/master/__jsl_clearance

送书

 《Python数据分析入门到精通》*3

6d6ce4e229c830515d21534f8b801807.webp


抽奖规则

后台回复: 送书 ,参与抽奖(共3本)


抽奖说明:

书籍是全部免费包邮送出!本意是送给有真正需要的人,同时也是读者福利,所以有以下几点说明:1、参与者须关注公众号同时仅限在本文右下角点击「点赞」的粉丝参与2、未点点赞的中奖者获奖无效3、为了大家都能有拿书机会,同一位读者一个月内只有一本!
good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter