当前位置: 首页 > news >正文

【反爬虫】极验4 W参数逆向分析

声明
本文只讲快速定位 跟栈过程 不提供完整代码 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关

逆向分析



验证接口当中 主要参数为W 其余参数在请求验证码时返回 W明文如下

{"passtime":3151,"userresponse":[2,2],"device_id":"","lot_number":"ed912d7b613d457784a0e0a183c2a128","pow_msg":"1|14|sha256|2026-04-14T09:14:53.636482+08:00|08c16c99330a5a1d6b7f4371bbd5a978|ed912d7b613d457784a0e0a183c2a128||99f6d6260560cb6f","pow_sign":"000097ffb9d37b0d88115d9eba712e73e5f89b01e27ed8ba3a19b439f8715a58","geetest":"captcha","lang":"zh","ep":"123","biht":"1426265548","yDWL":"hZGx","c2a14577":{"84a0e0a1":"7b61"},"em":{"ph":0,"cp":0,"ek":"11","wd":1,"nt":0,"si":0,"sc":0}}

其中userresponse会根据验证码类型的不同而不同,其中就是识别结果

快速定位

找到4代的JS代码 script断点或者直接根据请求的堆栈跟 很容易找到 名字叫做gcaptcha4.js的代码 直接全局搜索 symmetrical 或者 asymmetric

这就是加密的位置可以直接在这个function里打断点,粗略看一下 猜测2应该是个aes 1是个什么暂时不知道 断点直接打到return

可以看到是两段拼接的 第一段如下图

第二段

粗略看一下代码逻辑 第一段是一个AES加密 直接鼠标放到第一步搜索出来那里就会显示 模式为CBC 偏移量固定值"0000000000000000" 密钥n 是前面生成的 一会再弄


这里要注意一下return (0, _ᖈᖂᕸᕴ[_ᕸᕿᕸᖉ(161)])(u) + _ }
采用的是16进制编码 不能直接tostring
第一段 可以其实是一个rsa 只不过公钥直接搜索不到 使用模数n和指数e的十六进制字符串 生成公钥或者直接使用

function get__(plainText){const nHex='00C1E3934D1614465B33053E7F48EE4EC87B14B95EF88947713D25EECBFF7E74C7977D02DC1D9451F79DD5D1C10C29ACB6A9B4D6FB7D0A0279B6719E1772565F09AF627715919221AEF91899CAE08C0D686D748B20A3603BE2318CA6BC2B59706592A9219D0BF05C9F65023A21D2330807252AE0066D59CEEFA5F2748EA80BAB81';const eVal=10001;const nBigInt=BigInt('0x'+nHex);const nBuffer=Buffer.from(nBigInt.toString(16),'hex');const eBuffer=Buffer.from(eVal.toString(16),'hex');const jwk={kty:'RSA',n:nBuffer.toString('base64url'),e:eBuffer.toString('base64url')};const publicKey=crypto.createPublicKey({key:jwk,format:'jwk'});const message=Buffer.from(plainText,'utf8');const encrypted=crypto.publicEncrypt({key:publicKey,padding:crypto.constants.RSA_PKCS1_PADDING//对应 PKCS1_v1_5},message);let hexResult=encrypted.toString('hex');if(hexResult.length%2!==0){hexResult='0'+hexResult;}returnhexResult}

然后将两段破解的加起来 关于密钥n 往上跟可以看到e() + e() + e() + e()这样的东西 e函数很简单

http://www.jsqmd.com/news/644082/

相关文章:

  • 2026年热门的共板法兰风管加工/碳钢风管加工/防火风管加工/风管加工安装厂家选购指南与推荐 - 行业平台推荐
  • 4月14日TRO最新案件预警
  • RN项目配置说明
  • 2026年陕西废不锈钢资源价值管理:为何“矗立鼎盛”成为领先企业的共同选择? - 2026年企业推荐榜
  • 揭开 AI 智能体评估的神秘面纱 - 领测软件测试网
  • 大疆农业无人机T系列导入kml提示未找到boundary
  • 如何引导红人植入有效CTA,提升海外红人营销的转化率?
  • 罗技PUBG鼠标宏终极配置指南:5步实现完美压枪
  • 口碑好品质佳的保冷管托厂家,产品耐用性能更有保障 - 品牌推荐大师1
  • 今年煤炭能源领域展会推荐,帮你找到高性价比的参展机会 - 工业品网
  • 抖音合集批量下载终极指南:如何高效获取完整内容收藏
  • 西门子S7-200smart PLC二轴运动控制实例:高速脉冲控制步进电机/伺服电机,触摸屏M...
  • Puppeteer避坑指南:如何绕过动态网页的反爬机制(含最新指纹设置技巧)
  • 2026年知名的集装箱移动房屋/民宿移动房屋厂家综合实力对比 - 行业平台推荐
  • 2026年评价高的公交车光伏车棚/光伏车棚施工/光伏车棚安装工程招采推荐目录 - 品牌宣传支持者
  • Simulink IEEE 10机39节点系统模型:电力稳定分析与验证的平台
  • 20260414_分词器
  • ROS2 Humble实战:从零部署Livox Mid-360激光雷达并实现Rviz可视化
  • App加固后变卡闪退?实测数据告诉你如何避坑选对服务商
  • 告别手动刷新!用Python+Watchdog为你的Emby Server打造一个自动影片推送机器人(附Docker一键部署)
  • 2026年真实天康/安徽天康/天康集团企业专业推荐 - 品牌宣传支持者
  • 不止于文件回放:用simple-rtsp-server在Ubuntu上打造一个支持自定义音视频源的RTSP服务
  • 电子发票二维码背后的秘密:从代码到金额的全面解读
  • 2026年知名的人工泳池公共场所检测/公共场所检测服务型公司推荐 - 行业平台推荐
  • 思源宋体:解放中文排版设计的五个秘密武器
  • 2026年雅思学习app推荐:口语写作听力全覆盖,提分利器大揭秘 - 品牌2025
  • 大麦网自动抢票完整指南:Python脚本实现智能秒杀
  • 基于深度学习的车辆区域计数 区域入侵检测 区域违停占用识别 YOLOv11实时roi区域视频人车流量统计项目
  • 瑞祥商联卡线上回收平台靠谱吗?真实经验分享! - 团团收购物卡回收
  • 供应商管理:风险评估与绩效评价的系统