cloudflare 5s盾分析

前言

工作中遇到了有这个的网站 所以来搞一下

分析请求

先看看整体的流程

在这里插入图片描述

拿到最后的 cf_clearance cookie 就是验证通过了

第一步 初始化页面

在这里插入图片描述

页面内容 需要获取 _cf_chl_opt 这个中的部分值
和 md 在最后一步post 请求中会用到md
_cf_chl_opt.cRay 拼接 要请求的JS 地址

self._js_1_url = f'***/cdn-cgi/challenge-platform/h/{cFPWv}/orchestrate/managed/v1?ray={cRay}'

大部分都是这个格式

第二步

第一步的 JS 会发生一个 post 请求
地址为

platform/h/g/flow/ov1/733297980:1688606447:HQv3MvVys5gnB9nrg2GMxuQz8eKvxSMvzd6FTHs5B0E/7e245d2bee981840/5efdbf7ebbe3f50
https://***/cdn-cgi/challenge-platform/h/g/flow/ov1/{js中的某个值}/cRay/{cHash}

发送数据为

{
	"chReq": "managed",
	"cNounce": "40056",
	"cvId": "2",
	"chC": 0,
	"chCAS": 0,
	"oV": 1,
	"cRq": {
		"ru": "aHR0cHM6Ly93d3cuYWxsZWdpYW50YWlyLmNvbS8=",
		"ra": "TW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTVfNykgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2",
		"rm": "R0VU",
		"d": "KFSDJOFVmoj82BwR/FXAvmyHO7c0OIEUpTl6E7f8AtMMuXL+tcWhwUaEEI98z3C93JqXNA1QR+jWncGHtDEbC2d2g8m1nXikiEBO3waPXKbD+H1nSP/j6FYAqwl3gt7VP82rQuCrT/jbrLTmmcB/7QqpEVkVjLblzG3ZU91rJlT5Z7t9qS8mkh8TqpRS2589EJnLP52yxugQ8Uypom6B2WevozesJ0HHfqFwKj/n2rGekZMqaztprT09EDkog+C+d+sVTTe1JKfEgMFiLUDh4q2+kNFj2sGdGwnHmDFXFOHSmE0pV4+R115loViUuKy6Is3xk3uHM5r0r74KLXgCLcIiW2thrlFLCSe6EjLKV5hL0KKTygnMEyjvSVbNRriyzL747LwIH1HvpUx2+5BZxrIsZW6ehoBbalCipgy8qtdOTNGD2J9IsLdO0vApORMAoAX3ag8nwYE1XNnwWMPreAaPqLSmV9FG9ScOJcsc3eQW6lE30I515+QGfKodTrrXr2wv9vKcAJ/7bkNkq8aETDdWPFsMDwri0h522yC0dUIBiqU3G0K3rajfotir2yH3BHj9RVQg+Fu9nRyyXfgsbN8PPofxWwVRMqLiclJZszxhIkt/g1g237Sv6O1jmam3",
		"t": "MTY4ODYxMTM3NC44MDAwMDA=",
		"cT": 1688611374,
		"m": "kw/e2dwgtrWr9v84KaUNpllMVkA+9E5Bs7IfWyHDsWs=",
		"i1": "gZG6zyNbCiGlwncYw4DBaA==",
		"i2": "vbHMdj8uMdxJnpRkQs9y4g==",
		"zh": "Y3OoAsWGs8ShmcO7iHaBto+gGoelE8ZB/pf+9RpLrwo=",
		"uh": "xR8CtO7r16zI2pMrrz9IVIrV+K1oemYOymcQjo5KlbY=",
		"hh": "T0wGGEaOTl1FXca+/ZzlgBao5CR/fBMfjzoqcDV4/cw="
	},
	"ie": {
		"kd": 0,
		"pm": 0,
		"po": 0,
		"ts": 0,
		"mm": 0,
		"cl": 0,
		"t": 0
	},
	"wPr": {},
	"if": false,
	"ffs": false
}

都是第一步提取的
加密后 再发出去
在这里插入图片描述

name = v_{cRay}
因为返回的数据 需要用 cRay 解密
每次post 数据格式都这样 就不过多说明了

第三步 normal

需要请求一个 后缀为normal 的html 页面

https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/if/ov2/av0/rcv0/0/h4gmc/0x4AAAAAAADnPIDROrmt1Wwj/dark/normal

h4gmc 随机五位字符
0x4AAAAAAADnPIDROrmt1Wwj 为 网站的key  固定的

在这里插入图片描述

还是需要 cray 和 chash 和部分参数
在根据 cray 请求第二次的js
要加密的数据

{
	"chReq": "chl_api_m",
	"cNounce": "28481",
	"cvId": "2",
	"chC": 0,
	"chCAS": 0,
	"oV": 1,
	"cRq": {
		"ru": "aHR0cDovL2NoYWxsZW5nZXMuY2xvdWRmbGFyZS5jb20vY2RuLWNnaS9jaGFsbGVuZ2UtcGxhdGZvcm0vaC9nL3R1cm5zdGlsZS9pZi9vdjIvYXYwL3JjdjAvMC9qaHk2YS8weDRBQUFBQUFBRG5QSURST3JtdDFXd2ovZGFyay9ub3JtYWw=",
		"ra": "TW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTVfNykgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2",
		"rm": "R0VU",
		"d": "iTfgNjLhgpaI0mwE+Hoyjm3sRdbCSqUZqoJQPIObCxGSElpFFhNCvf/xyPhECrj4Yo1sdMNMfnviK37oFIKrzN9+C6hHQPds4sGcrMlTGaf4cMmRFh1x9Jt1h3QGas0IVBVgqNDzBVv/s2dE3502O3CiVY2ruKe0fWPfrAl8TT7CtGUnOpK871hMeQKbbSg708DGaeDDiatz4lIgJxxFbVdcOEEAHXBGRF6s29RfMYM9pIb09K2AbaDO9ORxyrbddR7AbbcGgpXUA9Mnfz3bQvLp1P+QL4apvpC+2RPIDMucP5IgJDw4ytAW6cwfv9EHIJsrkZs69aEXuFZLqm/Bq/yEDPNrs9N0nSFERQmUwMsQ8xwkZTg+W/XMO9tK63mdkMEF9sExxw9sN2yFhkkBMOqECC/L8ZValqfKKKRhMfovcexhLi4TxBJ6eMLKF0ZSX5JI2bGOPQS1tKhLnhtYh+c5KiGPU4jA8xrQKLJVAkEJLieOpP3lIpXGXKD3nFqZAl1CgS6r+OawJxK/A88f4s3DpNGQlP4BI4QJ10P/32M=",
		"t": "MTY4ODYxMTQ0MC44NzE=",
		"m": "VS9+Gsyx7EPMX6/gVYBpyiwfLlVGmC7T38bmHs3RAhU=",
		"i1": "9k9pl1+0xD1jrTpl9UA/bw==",
		"i2": "hG8J/PtG3f4yyO74nwUikg==",
		"uh": "xR8CtO7r16zI2pMrrz9IVIrV+K1oemYOymcQjo5KlbY=",
		"hh": "WCiLdNo2uN2aXsfJJhG2HFkP3bOo0fw8tsFAppLisvs=",
		"zh": "9D+zbxCfwBPyr1pF5Wb5E9kRItcGU2xCgzO1zGTKToQ="
	},
	"ie": {
		"kd": 0,
		"pm": 0,
		"po": 0,
		"ts": 0,
		"mm": 0,
		"cl": 0,
		"t": 0
	},
	"wPr": {},
	"if": true,
	"ffs": false,
	"chlApivId": "0",
	"chlApiWidgetId": "jhy6a",
	"chlApiSitekey": "0x4AAAAAAADnPIDROrmt1Wwj",
	"chlApiAction": "managed",
	"chlApicData": "7e247f446c5b3ad6",
	"chlApiChlPageData": "3gAFo2l2MbhwV2FqUDdWcmMva2s3NXF1Zk0zVWRRPT2jaXYyuGwzcFdYcGJVSzV5Y3VIWnBWaFEvWXc9PaFk2gEsMVdTTzFCK3pkTG9JMEZ3eXRIVk9qNVFSRWZQOEd4RWRIMkcvMFdjL0c2ekt0WStBNnY0Y0dqczh2d3h5eUdUOHJzT1ltQUVtNjFDQWFQRVJvTGlxYjlpaGVUOHFXS3BBT1JSbkVlMHRxSmlwdjV0M0ZIVmJjcHJkRU5yekllbWpXaDIySjF2dWZoeFJKajVnSWtWNG5HOTBEK0dYNTArbDFZVWY2Ukdic3UwOWNHYW1TUGpTN1N1dEIvYWNlUHVzL0FqMmlxcUhKSzJlY0JJcHBybm92a2ExYXdLbkxwK0VNVy8xZkh0QlhseVA1Z3pNeks2bjliRk9Pd210ODZsZWpqUTIvdVFXRHg2aVdyMGpocjRzQzdjL3YyTFlVSFd5aDZUYnZKYU14d009oW3ZLDlyQjROb0NKOXo4Qmw0YXkzWmNZNUJiMnV0NWJmMlBmOE1OVjZZd2JZT2s9oXS0TVRZNE9EWXhNVFF6Tnk0NU1qZz0=",
	"chlApiACCH": "19b997cb",
	"chlApiUrl": "初始化地址",
	"chlApiOrigin": "初始化地址",
	"chlApiRcV": "1/fif1NcEDXIlC2ll"
}
pageData 是这步js 中的 
chlApicData 是第一步的cray 应该是要做关联的

加密后在发出 会返回 一个长字符串
在这里插入图片描述

一般长度会在 十几万到二十几万之间
解密后 有两种分支 w.startsWith(‘window._’) 根据开头字符判断
格式一 明文代码分支 这个就简单了
格式二 vmp 分支 所有代码会进入vmp 中执行
这步就是最难得步骤了 环境校验

第四步 环境校验

拿到上面的代码后
我是通过补环境的方式过的
因为 经过测试 需要校验的环境 点和 顺序是不一样的 导致无法通过还原算法的方式执行
也不排除有大神可以直接还原 反正我做不到…
在这里插入图片描述

基本上就是 十几个到二十个校验点
其中只有第一个是固定的… 其他都会变化
![[pic.png]]
值得注意的一点是 他会请求一张图片
获取图片的宽高
https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/img/7e245d3fd8b72bbd/1688609982279/SSIWaTPNMJAQEpP

如上 获取完环境数据 在和之前一样 进行加密发送
也是有两种分支

  1. 校验通过 返回的 字符串解密后长度在1000-5000内 可以获得token

  2. 长度为10000以上 是需要进行再次的点击验证
    在这里插入图片描述

     点击验证就是在上面的 十几个环境后再加一个
     然后再判断是否通过 
     解密后字符串长度在1000内就是失败了
    

第五步 获取 cf_clearance

如果环境通过 拿到token 后 需要在发送一次 获取 sh aw 三个参数
在这里插入图片描述

再向初始化页面 post 四个参数
在这里插入图片描述

就可以拿到
在这里插入图片描述

和正常的页面代码了
在这里插入图片描述

至此 验证就结束了
就可以拿着 cookie 去请求了

注意事项

目前这个网站测试的是 需要保持 ip tls ua 完全一致
破解时使用什么 再次使用时就需要用完全一样的 ip tls 指纹和 ua

环境校验时 有一个fetch 请求 和 图片请求 都需要发出
图片请求不发 百分百失败

调试时 需要注意 他对于时间的控制 很严格 页面调试时 动不动就超时失败…

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Cloudflare 是一个全球分布式的网络服务提供商,它提供了许多网络安全和性能优化的功能。虽然Cloudflare在提供安全和性能方面有着优势,但有时也会出现慢的情况。 首先,Cloudflare的慢可能与其服务器负载有关。由于Cloudflare有大量客户,服务器上可能同时处理着许多请求,这可能导致一些请求的响应时间变长。当然,这也取决于用户所在地区和具体网络连接的质量。 其次,Cloudflare的网络延迟也可能对其速度产生影响。Cloudflare的服务器分布在全球各地,用户连接到离他们物理位置最近的服务器。如果用户与最近的服务器之间的网络连接不稳定或拥挤,可能会导致Cloudflare响应时间变慢。 另外,如果用户正在遇到Cloudflare慢的问题,也有可能是因为Cloudflare服务器维护或升级。Cloudflare定期进行服务器维护来提高系统性能和安全性,这可能会导致一段时间内的慢速度。 为解决Cloudflare慢的问题,可以尝试以下方法: 1. 更换DNS解析器:使用其他DNS解析器来尝试连接到不同的Cloudflare服务器,以找到相对较快的连接。 2. 优化网络连接:尽量使用稳定的高速互联网连接,并确保所使用网络设备无故障。 3. 清除浏览器缓存:经常清除浏览器缓存和cookie,以确保每次重新连接时都能获取最新的响应。 总结而言,虽然Cloudflare在提供网络安全和性能优化方面有很多优势,但用户有时也可能会遇到响应较慢的情况。这可能是由于服务器负载、网络延迟或服务器维护所致。通过尝试优化网络连接和更换DNS解析器等方法,可以帮助解决Cloudflare慢的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值