B站login-极验逆向
声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标网站
https://www.bilibili.com/ 登录分析
分析过程
极验分析
直接查看login的极验的调用的js,点击去看看发现俩个文件全部混淆了
我解开看看,肯定有好东西呢!
先分析click文件


某些字符串是转义序列,此时我们需要转换。
tips:当这些 Unicode 编码以 "\uXXXX" 的形式出现时(其中 XXXX 是 4 位十六进制数),它们通常被用作字符串中的转义序列,表示一个特定的 Unicode 字符。
还发现了调用了个解密函数,输入对应的number即可输出解密的字符串

还发现了for-switch结构中用死数组的来判断执行的每个case。被吓到了。
解密效果如下

发现w参数在哪里了!

继续分析

分析o参数的来源
通过设置原型代理去hook找到set-key,即可找到整个对象设置的过程


继续溯源

发现原来是请求响应体拿到很傻哈哈,很低效率,不过细节全收入囊中,值得的


点击坐标this.$_BIFO.$_BHDz




这里的t是判断点击在哪里(按钮为3,其他为1),dt是当前时间-初始化时间


属性来源

取domracet的右减去左


基本上o对象的所以属性都解析的差不多了,剩下的都是就是组成业务逻辑了!
还原后的click.js已放到星球,以方便各位相关调试,寻找算法、检测点学习
b站login-password分析
往上追溯是个异步,从控制流找到个异步,单步追踪


拿请求的hash和pubkey(RSA加密(猜测))


不过这里有个坑,即使固定了随机数,难以与本地做出验证,Rsa加密还是每次都随机
后面问了零点大佬,指出变化点(万分感谢大佬的帮助)
雀氏RSA的机制每次都会把这个this做出一定的改变来影响整个整体随机,于是我直接找了个Rsa的开源项目,照猫画虎的源码的this每次进行初始化,通过对比每次结果,后面大致看了看基本是些常规操作随机、位运算,猜测这个RSA是没有魔改的,Nice,后面通过原生加密也可以被私钥进行解密,算是过关了,虽然省不了多长扣代码的时间,但是总有收获所在!
后续得去了解rsa底层加密步骤才能好好玩耍。



//极验
var u = n.$_CAAz();
var h = X.encrypt(ae.stringify(o), n.$_CABL());
var p = w.$_EFO(h);
var d = {
"gt": r.gt,
"challenge": r.challenge,
"lang": o.lang,
"pt": n.$_BGJB,
"client_type": n.$_BHAv,
"w": p + u
}
// b站
r(s.encrypt(o.data.hash + t)))
解决方案
思路:
通过上述逻辑,分析接口流程
hash,public_key=token, challenge, gt = passport-login/captcha 携带上gt请求gettype.php 携带上gt、challenge请求ajax.php 图片data =携带上gt、challenge请求get.php data["pic"],c = data["c"],s = data["s"]执行点选请求url = ’https://static.geetest.com+["pic"]’ validate, token, challenge=生成w、携带上gt、challenge请求ajax.php 携带上述hash、public_key生成password参数请求b站web/login的link
直接放出最后login成功图!(后续实现个花光所有硬币的计划)


番外预告某音ab
思路是对每个vmp的循环插桩,即可判断是哪个vmp最终生成目标算法,避免日志过大,在位置9进行断住ab,分析位运算符日志(纯算不多讲,PS:我基本全参考了星云牛马这位博主的插桩log点)

成功图

预告:全参补环境检测图


参考链接:
[1] 某音ab纯算参考。
[2] 极验3文字点选参考。
[3] b站login极验用于魔改优化风控。
Next-Target
后期思路是讲补环境去通杀某音ab,xb,xhs全参等等,尽量避免用插桩分析还原算法去对抗jsvmp脏活。 阿里140 瑞数456vmp 主动调用Android-Wechat文本信息
最近想法
我开了个知识星球,把本期的成品已放到了里面,有需要的小伙伴可以自行去取,jd的参数,阿里bxet纯算、快手滑块,Pdd—Anti,ikuai,b站login之-极验3文字,某音ab等等,主要是某些大佬加我问成品,很多人都打着白嫖的手段去加我好友为目的,问完基本就以后没有任何的交集,这样的交好友雀氏没有任何意义。不如我直接开个星球,里面直接放我逆向的成品以及逆向的思路,这样大家各取所需,我也有点收益,意义更明确点,免得浪费大家的时间。星球如果你们遇到了什么问题的话,也可以直接提出来,我肯定以我最大的能力去回答,后续的话,随着知识星球的作品越来越多,涨价是必然的。至于一些没有特殊难点的站或app,我会直接把思路以及成品到星球里面,同时也欢迎各位大佬的技术合作,有技术,有想法的一起交流成长。



B站login-极验逆向的更多相关文章
- 破解b站极验验证码
这就是极验验证码,通过拖动滑块移动拼图来验证.我们观察到点击滑块时拼图才会出现,所以我们可以在点击滑块之前截取图像,点击滑块再截取一次图像,将前后两次图像做比较就可以找到图片改动的位置.获得位置后,我 ...
- selenium处理极验滑动验证码
要爬取一个网站遇到了极验的验证码,这周都在想着怎么破解这个,网上搜了好多知乎上看到有人问了这问题https://www.zhihu.com/question/28833985,我按照这思路去大概实现了 ...
- thinkphp整合系列之极验滑动验证码
对于建站的筒子们来说:垃圾广告真是让人深恶痛绝:为了清净:搞个难以识别的验证码吧:又被用户各种吐槽:直到后来出现了极验这个滑动的验证码:这真是一个体验好安全高的方案:官网:http://www.gee ...
- GEETEST极验召集互联网大佬齐聚光谷,共同探讨交互安全问题
全球互联网技术在飞速发展的同时,网络安全事件也随之频发.除了直接带来经济损失的网络恶意攻击之外,企业在多个方面也遭受着不同程度的网络恶意攻击,包括品牌形象.管理时间.企业竞争力.客户成交量.用户行为等 ...
- Django中使用极验Geetest滑动验证码
一,环境部署 1.创建一个django测试项目 此处省略... 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://github ...
- vue_drf之实现极验滑动验证码
一.需求 1,场景 我们在很多登录和注册场景里,为了避免某些恶意攻击程序,我们会添加一些验证码,也就是行为验证,让我们相信现在是一个人在交互,而不是一段爬虫程序.现在市面上用的比较多的,比较流行的是极 ...
- 极验3.0滑动拼图验证的使用--java
[ 前言: 在登录其他网站的时候,看到有个滑动拼图的验证觉得挺好玩的,以前做一个图片验证的小demo,现在发现很多网站都开始流行滑动拼图的验证了,今天也想自己动手来弄一个. 废话不多说,开始撸起来! ...
- 极验验证使用-滑动&选字验证码
准备 SDK下载 首先在极验官网下载好SDK,附上官网链接,点此可直接下载python版zip包. 模块安装 使用该SDK时发现它依赖两个模块,分别是geetest和requests. pip ins ...
- luffy之多条件登录与极验滑动验证码
多条件登录 JWT扩展的登录视图,在收到用户名与密码时,也是调用Django的认证系统中提供的authenticate()来检查用户名与密码是否正确. 我们可以通过修改Django认证系统的认证后端( ...
- GeeTest 极验验证
前台Html页面 <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> ...
随机推荐
- React纯组件的使用
1. 有无必要使用纯组件 如果应用不是很大型,页面渲染效率使用纯组件与非纯组件差别不大,尽量使用组件 应用一定注意,setState时子组件依赖渲染的属性一定要传递给子组件,不然父组件setState ...
- 力扣429(java)-构造矩形(简单)
题目: 作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的. 所以,现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面.要求: 你设计的矩 ...
- es实战-使用IK分词器进行词频统计
简介:通过IK分词器分词并生成词云. 本文主要介绍如何通过 IK 分词器进行词频统计.使用分词器对文章的词频进行统计,主要目的是实现如下图所示的词云功能,可以找到文章内的重点词汇.后续也可以对词进行 ...
- Go 调用 Java 方案和性能优化分享
简介: 一个基于 Golang 编写的日志收集和清洗的应用需要支持一些基于 JVM 的算子. 作者 | 响风 来源 | 阿里技术公众号 一 背景 一个基于 Golang 编写的日志收集和清洗的应 ...
- Puppeteer 入门与进阶: 快速上手
Puppeteer API: https://puppeteer.bootcss.com/api 1. 安装: $ yarn add puppeterr 2. 网页截图实例: // main.jsco ...
- [Kali] Kali Linux 环境准备
虚拟机和系统: Mac 的 Vmware Fusion:https://www.vmware.com/cn/products/fusion/fusion-evaluation.html 序列号去 ...
- Git 版本控制:构建高效协作和开发流程的最佳实践
引言 版本控制是开发中不可或缺的一部分,他允许多人同时协作,通过记录每一次代码的变更,帮助开发者理解何时.为什么以及谁做了修改.这不仅有助于错误追踪和功能回溯,还使得团队能够并行工作,通过分支管理实现 ...
- 2019-8-31-How-to-output-the-target-message-in-dotnet-build-command-line
title author date CreateTime categories How to output the target message in dotnet build command lin ...
- pnpm的基本原理及快速使用
基本原理 前置知识:软件链接与硬链接 软链接(符号链接Symbolic link):是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用.在window快捷方式上和其 ...
- Docker 笔记汇总
一.名词说明 Dockerfile 镜像构建文件 Docker Images 镜像:生成容器 Docker Containers 容器:微型系统 Docker Volumes 卷:存放容器运行数据 D ...