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> ...
随机推荐
- 特殊border的样式 -- CSS3实现三种切角效果
效果一: 代码:<div class="cornerCut">corner cutcorner cutcorner cutcorner cut</div> ...
- 《c#高级编程》第2章C#2.0中的更改(三)——迭代器
一.概念 C#迭代器(Iterator)是一种特殊类型的方法,它使得在使用循环遍历数据集合时更加简单和有效.使用迭代器可以通过简单地定义迭代器方法来自动实现枚举器模式. 当您需要访问一个数据集合中的每 ...
- 好的 MySQL 兼容性可以做到什么程度? PolarDB-X 如何做生态兼容
简介: 2003 年淘宝网成立之后,业务飞速发展,其后台架构也进行了多次迭代.2009 年之前,淘宝网后台的数据库架构是经典的 IOE 组合.IOE 是指 IBM 的小型机. Oracle 的数据库加 ...
- 性能提升一倍!云原生网关支持 TLS 硬件加速
简介:业界在优化 HTTPS 的性能上也做了诸多探索,传统的软件优化方案有 Session 复用.OCSP Stapling.False Start.dynamic record size.TLS1. ...
- Serverless Devs 2.0 开箱测评:Serverless 开发最佳实践
简介: 当下,Serverless 概念很火,很多同学被 Serverless 的优势吸引过来,比如它的弹性伸缩,免运维,高可用,资费少.但真正使用起来去落地的时候发现问题很多,大型项目如何组织函数 ...
- [GPT] ./ssh/known_hosts 是什么
~/.ssh/known_hosts 是一个SSH客户端用来存储已知的远程主机的公钥的文件,这些公钥用于验证连接到远程主机时它们是否为真实可信的主机. 当你首次通过SSH连接到一个新的远程主机时, ...
- 2019-11-29-dotnet-代码调试方法
title author date CreateTime categories dotnet 代码调试方法 lindexi 2019-11-29 8:50:0 +0800 2019-6-5 9:4:4 ...
- 安装petalinux
1.petalinux工具下载,下载地址: https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloa ...
- JavaWeb 中 “转发”与 “重定向”的区别
JavaWeb 中 "转发"与 "重定向"的区别 每博一文案 人生的常态,就是有聚有散,有得有失,就像山峰一样,总有高低,起伏不断. 曾经,我们是鲜衣怒马的少年 ...
- 【GUI软件】小红书按关键词采集笔记详情,支持多个关键词,含笔记正文、转评赞藏等
目录 一.背景介绍 1.1 爬取目标 1.2 演示视频 1.3 软件说明 二.代码讲解 2.1 爬虫采集-搜索接口 2.2 爬虫采集-详情接口 2.3 cookie说明 2.4 软件界面模块 2.5 ...