Cloudflare的分析流程

简介: Cloudflare的分析流程

最近闲来无事 顺便玩玩Cloudflare,Cloudflare 就是我们俗称的五秒盾

大概在以前五秒盾还是一个很简单的东西 自从更新后 玩法已经大不相同 各种环境检测 各种dom操作 都要想方设法在node里面复现

注意注意:本文没有详细分析到里面的监测点啥的!


观前提示:

本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除


目标网址:aHR0cHM6Ly9wYXN0ZWJpbi5jb20vbG9naW4=



0x1流程

首先进来会进入一个跳转页面

接着会发一些包

几秒后重新跳转到正确的页面

以上就是一个网页上的流程


本文到此结束






















0x2内容分析

经过反复测试主要的包就是这几个


首次登陆网址的时候 会进行一次503  跳转到cloudflare界面

在这里面 有用的信息有

然后就是根据包的内容来走流程啦

带上window._cf_chl_opt和请求的js代码一起运行计算后能得到一个

URL和Data 去请求

并得到返回的一段加密js代码和cookies

这段cookies在第二次请求时需要带上 应该是作为标识

根据上面返回的加密js和cookie又发一次请求(这次的请求因为夹带了各种环境 所以巨长)

去请求后又返回一段加密js代码,加密的js代码中包含下面三个字段值

如果成功便可以拿到下面三个字段值

jschl_vc

jschl_answer

cf_ch_verify

如果不成功也是会返回加密的js代码,但是里面没有包含上面的三个字段值

并且里面包含有document.location.reload()

一般也可以从返回的js代码的长度判断得出来

返回长度在2800-4000左右的为成功的

返回长度小于2500 或者 大于5000的为失败的

(此代码是解密后且ast解混淆后的代码)

最后就是请求拿最后的cookie了



这便是流程内容的分析 因为内容跳转的太快 有时候容易跳过去而拿不到值就像这样


所以我推荐使用fd抓包之类的工具 这样就不会错过有用的信息了

也可以用fd下hook 会帮助下断直接命中要点

我自己是hook Function

还有python requests是不行的 需要TLSv1.2或以上 所以 推荐使用 httpx


0x3 AST解混淆


ast解混淆的代码暂且还未挂上 如有需要的可以私聊我要

对分析结果很有帮助



0x4 一丁丁小经验

第一次发包无非就为了第二次做准备

但是环环相扣

所以大家加油蛤!

主要讲第二层

这个是我经常挂的一个hook脚本(这个是hook网页的)

(function() {
    window.xxx=1;
    xxa=Function;
    Function=function(a){
        if(window.xxx==2){debugger}
     window.xxx+=1;
    return xxa(a)
    }
})();

方便我挂住后可以输出检测完环境生成的window._cf_chl_ctx

所有的环境检测后都会放在这里

接着运行第一层写入的 window.sendRequest函数去发包

所以我们要看环境对不对的上可以输出这个函数 然后和网页上断下的值对不对的上 至于怎么操作 还得看你们 自己慢慢琢磨才好

我自己的做法是

伪造了send 在send上面打断点 输出window._cf_chl_ctx

在一个一个对比

仁者见仁智者见智啦


0x5运行结果

最终下来通过这些环境可以达到接近九十的通过率 可喜可贺 可喜可贺




完美撒花 感谢各位大佬观看

由于内容非详细分析 还请各位大佬见谅

可能各位大佬看了个寂寞

听君一席话 犹如听君一席话


[完]

相关文章
|
存储 算法 数据可视化
python老司机必备-内存泄露分析优化
python老司机必备-内存泄露分析优化
1901 0
python老司机必备-内存泄露分析优化
|
Linux Python 监控
Supervisor 、Supervisord-Monitor 的web统一管理安装、配置、使用
Supervisor 安装、配置、使用、web管理,linux下进程管理系统、监听、重启、停止进程。
10032 1
|
编解码 监控 网络协议
【那些反爬和反反爬】JA3指纹
【那些反爬和反反爬】JA3指纹
1666 0
|
6月前
|
存储 缓存 NoSQL
告别数据僵尸!Redis实现自动清理过期键值对
在数据激增的时代,Redis如同内存管理的智能管家,支持键值对的自动过期功能,实现“数据保鲜”。通过`EXPIRE`设定生命倒计时、`TTL`查询剩余时间,结合惰性删除与定期清理策略,Redis高效维护内存秩序。本文以Python实战演示其过期机制,并提供最佳实践指南,助你掌握数据生命周期管理的艺术,让数据优雅退场。
435 0
|
10月前
|
人工智能 数据可视化 API
自动查文献+写代码+跑数据+出报告!港大开源 Auto Deep Research 搞定科研全流程
Auto-Deep-Research 是一款由香港大学开源的个人 AI 助理,基于模块化多 Agent 架构,专注于深度研究任务,兼容多种大语言模型,并提供一键启动和文件解析等强大功能。
976 4
自动查文献+写代码+跑数据+出报告!港大开源 Auto Deep Research 搞定科研全流程
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
861 1
|
算法 Java 数据安全/隐私保护
App逆向百例|06|某App mfsig分析
App逆向百例|06|某App mfsig分析
1574 0
|
存储 Java 数据库
Base64解码遇到java.lang.IllegalArgumentException: Illegal base64 character d
Base64解码遇到java.lang.IllegalArgumentException: Illegal base64 character d
Base64解码遇到java.lang.IllegalArgumentException: Illegal base64 character d
|
JavaScript 数据安全/隐私保护
某招聘站新版zptoken玩法分析第三弹
某招聘站新版zptoken玩法分析第三弹
497 1
|
C语言 容器
【qt】动态属性(下)
【qt】动态属性(下)
208 1

热门文章

最新文章