新闻详情

新闻详情

首页 / 资讯中心 / 详情

geetest滑块(一)

发布时间:2026/9/4 17:39:40来源:尧图网络
geetest滑块(一)
演示地址:aHR0cHM6Ly9kZW1vcy5nZWV0ZXN0LmNvbS9zbGlkZS1mbG9hdC5odG1s先分析数据包流程1、获取challenge和gt2、获取第一个w值3、获取第二个w值4、获取验证图片5、获取第三个w值6、提交代码分析i生成定位r生成定位先分析数据包流程1、获取challenge和gt在register-slide这个接口获取这两个值2、获取第一个w值首先加载fullpage.9.2.0-guwyxh.js获取到w值然后请求get.php获取到c和s的值这两个值用来后面过滑块3、获取第二个w值第二个w值也在fullpage.9.2.0-guwyxh.js中获取到第二个w值后请求ajax.php会返回当前的验证码是什么类型4、获取验证图片请求get.php获取到验证图片这个响应中主要获取c、s、bg、fullbg和一个新的challenge5、获取第三个w值第三个w值由slide生成这个就是滑块滑动后生成的6、提交提交后message返回success代表通过并且会返回一个validate在后续的请求中需要使用这个值提交比如bilibili的登录有一个seccode参数有两个部分第一个部分就是这个值代码分析首先定位到fullpage.9.2.0-guwyxh.js这个js是一个混淆的代码可以用ast解混淆不算是很难解混淆后搜索w可以定位到w生成的位置这里就是第一次生成w的位置直接替换文件打断点就可以这里如果不知道是第几次的可以打印到控制台上然后和数据包里的对比这里不再演示现在需要定位的是i和r是怎么生成的i生成定位在上面可以找到o $_BFr()[encrypt1](de[stringify](t[$_EJN]), t[$_CCHP]()) i p[$_HEJ](o)这里在看o是加密的什么数据t[$_EJN]的值为{ gt: xxxxx, challenge: xxxxxxx, offline: false, new_captcha: true, product: float, width: 300px, https: true, api_server: apiv6.geetest.com, protocol: https://, type: fullpage, static_servers: [ static.geetest.com/, static.geevisit.com/ ], click: /static/js/click.3.1.2.js, beeline: /static/js/beeline.1.0.1.js, voice: /static/js/voice.1.2.6.js, fullpage: /static/js/fullpage.9.2.0-guwyxh.js, slide: /static/js/slide.7.9.3.js, geetest: /static/js/geetest.6.0.9.js, aspect_radio: { slide: 103, click: 128, voice: 128, beeline: 50 }, cc: 11, ww: true, i: -1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1 }这里主要需要改动的只有gt和challenge替换为我们获取到的值就可以r生成定位在上面可以定位到var r t[$_CCGr]()跟踪$_CCGr定位到$_CCGr: function (e) { var t new X()[encrypt](this[$_CCHP](e)); while (!t || 256 ! t[length]) t new X()[encrypt](this[$_CCHP](!0)); return t; }先分析this[$_CCHP](e)$_CCHP: function (e) { return this[$_EIc][aeskey] !e || (this[$_EIc][aeskey] te()), this[$_EIc][aeskey]; }这段代码通过分析可以发现走的是te()te function () { function e() { return (65536 * (1 Math[random]()) | 0)[toString](16)[substring](1); } return function () { return e() e() e() e(); }; }();这里就很明了了就是生成点随机数然后拼接到一起这个生成的随机数需要保存下来后面还会用到这里直接补环境不算是很难最后运行结果可以获取到第一个w的值然后通过get.php接口获取到c和s的值
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

企业微信私域运营怎么做?15个区域“一套方法“落地案例+2026企业微信服务商选型指南 2026/9/4 18:24:54

企业微信私域运营怎么做?15个区域“一套方法“落地案例+2026企业微信服务商选型指南

阅读更多 →
Bythere白泽-恋玻璃鼠标垫评测:电竞与创作场景下的极致顺滑体验 2026/9/4 18:24:54

Bythere白泽-恋玻璃鼠标垫评测:电竞与创作场景下的极致顺滑体验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
从韩国外交系统信息泄露看供应链攻击:第三方依赖安全实战指南 2026/9/4 18:24:54

从韩国外交系统信息泄露看供应链攻击:第三方依赖安全实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
【单片机毕业设计】基于 STM32 的环境光自适应语音可控照明装置设计 多传感器协同的 STM32 智能台灯控制系统设计(018306) 2026/9/4 18:24:54

【单片机毕业设计】基于 STM32 的环境光自适应语音可控照明装置设计 多传感器协同的 STM32 智能台灯控制系统设计(018306)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

阅读更多 →
【单片机毕业设计】基于 STM32 的定时与传感融合智能窗帘系统设计 基于 STM32 的 SG90 舵机驱动智能窗帘控制器设计(018206) 2026/9/4 18:24:54

【单片机毕业设计】基于 STM32 的定时与传感融合智能窗帘系统设计 基于 STM32 的 SG90 舵机驱动智能窗帘控制器设计(018206)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

阅读更多 →
基于ROS2与Gazebo的四轮差速机器人仿真:从URDF建模到Nav2自主导航全流程实践 2026/9/4 18:21:54

基于ROS2与Gazebo的四轮差速机器人仿真:从URDF建模到Nav2自主导航全流程实践

简介:本资源是一套面向ROS2初学者与机器人开发者的四轮差速移动机器人仿真系统完整实现,聚焦运动控制与自主导航两大核心能力,适用于高校课程设计、科研原型验证及Nav2导航算法实践。压缩包共81个文件(143KB)&#xff…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞