521 加速乐多层响应 Cookie逆向 + 代码高度混淆
网址:aHR0cHM6Ly93d3cubWFmZW5nd28uY24vaS81Mzc2OTc4Lmh0bWw=
目录
声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!
前言
逆向思路
详细流程
步骤1:获取第一次 __jsl_clearance_s参数的值
核心步骤2:拿到第二次 __jsl_clearance_s参数的值
步骤3:拿数据
最后看看python实现吧,还是挺简单的,哈哈,多加练习吧
总结
声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!
前言
加速乐是知道创宇推出的一款网站CDN加速、网站安全防护平台.
加速乐的基本样式,521 为其明显特征,其他地方几乎看不到这个状态码.
加速乐的特点是访问网站一般有三次请求:
- 第一次请求网站,网站返回的响应状态码为 521,服务器返回的 Set-Cookie 中携带 jsluid_s 参数,响应数据中返回的为经过混淆的 JS 代码,结果就是__jsl_clearance_s的值,需要携带这两个cookie去第二次发送请求.
- 第二次请求网站,网站同样返回的响应状态码为 521,响应返回的为经过 OB 混淆的 JS 代码,经过次步骤会更新__jsl_clearance_s
- 第三次请求网站,携带第一次返回的jsluid_s 与__jsl_clearance_s,网站返回的响应状态码 200,即可正常访问到网页内容。
逆向思路
根据我们上面讲的加速乐的特点,我们想要获取到真实的 HTML 页面,需要经过以下三个步骤:
- 第一次请求网站,服务器返回的 Set-Cookie 中携带 jsluid_s 参数,将获取到的响应内容解密拿到第一次 __jsl_clearance_s参数的值;
- 携带第一次请求网站获取到的 Cookie 值再次访问网站,将获取到的响应内容解混淆逆向拿到第二次 __jsl_clearance_s参数的值;
- 使用携带 jsluid_s 和 __jsl_clearance_s参数的 Cookie 再次访问网站,获取到真实的 HTML 页面内容,继而采集数据。
详细流程
步骤1:获取第一次 __jsl_clearance_s参数的值

第一次访问就是正常的请求,结果会返回经过混淆的 JS 代码,此时需要用正则提取出来,或者切割出来,这里笔者是切割,再用execjs中的eval函数执行就行了,此时就拿到了发第二次请求所需的__jsl_clearance_s.

data1 = response.text.split("cookie=")[1]
data2 = data1.split(';location')[0]
__jsl_clearance_s = execjs.eval(data2)

核心步骤2:拿到第二次 __jsl_clearance_s参数的值
此过程是整个项目的核心,因为这里的js代码是动态变化的,而且代码经过了OB混淆,大大加大了代码的可阅读性,此时可以找个在线解混淆网站尝试解一下(解混淆网站) (可能不太好用),或者用解混淆工具稍微解一下(需要的私聊我),实在解不了的你就到浏览器一个个的去看(当然能逆的不解混淆也能逆,不能逆的解了混淆也没有用,哈哈)
不解混淆直接搜document也行,因为最终cookie的赋值是在document里的


此时要想拿cookie有两个方案,一是扣代码,需要仔细跟代码逻辑,这也是网上绝大部分人的做法.下面介绍我的做法,因为代码量不多,就几百行,你扣下来也要几百行,全扣下来直接补环境就行了,如果你看过我往期的js逆向之补环境过瑞数4.0 某房地产,js逆向之补环境过瑞数5.0某银河证券,你还在拿某药监局做案例?该换换啦. 你就会感觉这里的环境检测简直太少了,随便补补就能出结果
先全部拿下来,把document.cookie替换一下,方便打印,xxx在最上面提前定义了,直接运行肯定是会报错的


再经典不过的环境了, 直接一次性全部补上四大环境(可以看看往期的教程有详细的介绍),这个直接去浏览器copy一下就行了,完全不需要脑子,补完之后如果没出结果的话说明它没有走进setTimeout,我们只需要简单的把它放到外面就行了


再次运行一下,结果也是成功出来了,比扣代码感觉好用多了,但前提是你需要对浏览器模型理解较好,可以看看这个教程,浏览器模型,拿到数据再正则提取一下或者是切割一下,然后放到cookies里就行了

步骤3:拿数据
最后看看python实现吧,还是挺简单的,哈哈,多加练习吧


总结
1本期案例带大家看了看加速乐的流程,感觉和瑞数不是一个等级的哈哈,不过也是有点难度的,毕竟代码混淆很影响阅读和调试.
2出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来.
3本人写作水平有限,如有讲解不到位或者讲解错误的地方,还请各位大佬在评论区多多指教,共同进步.技术探讨加v lyaoyao__i(两个_,本人)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
