前端JS接口加密攻防实操

前端JS接口加密攻防实操

背景

在爬虫过程中,对数据接口各类加密的经历总结,无头消耗资源效率不高,采用浏览器兜底解密+协程并行

青铜版(混淆+对称加密|签名nonce等)

解:根据API 调用栈,断点找到request参数前后逻辑,拿到密钥仿写

白银版(debug限制devtools+加密js二次混淆加密)

解:debug解决方式

针对指定的路径进行断点,修改响应文件

二次混淆加密:1.总有调用栈,通过devtools->console试验找到的方法调用是否成功有效,并单独放到html中测试执行

铂金版

  • 封闭js无调用栈(例如:js文件通过js加密网每10s生成密钥并混淆放入localstorge,key命名可能并不是明显的密钥,难以察觉,而js文件难以直接查找到密钥,可以采用:1,devtools全局检索 2,将js文件放入graalvm/Selenium/PhantomJS中执行,执行结果返回给外部

    graalvm

钻石版

js加密防护

  • js使用navigator这个浏览器系统变量可以判断navigator.webdriver是否被自动化测试驱动(由于大部分自动化测试都会有隐藏全局字段,例如:Selenium存在很多隐藏全局字段,所以js可以判断是否被无头浏览器执行,不知道覆写哪些字段绕过)
  • js 可以调用浏览器特有的冷门字段作为加密盐,同时将某些字段混入,方便后端日志分析账户查封等
  • 单独一个不起眼的js文件(混水摸鱼),并保持封闭,每次不同的冷门请求头混入签名中,不定期服务器上更新该js,同时不要返回响应提示

js解密

  • 针对上面的navigator相关,可先执行js,并代理navigator的调用,监听看加密中调用了哪些方法,并针对性进行覆写

    其他冷门字段加密的方式费时间,只能直接拿js执行查看使用字段按上面思路排查

想到再补充AI FACE破解相关

相关推荐
天天鸭16 分钟前
前端仔写了个 AI Agent,才发现大模型只干了 10% 的活
前端·python·ai编程
发现一只大呆瓜36 分钟前
前端模块化:CommonJS、AMD、ES Module三大规范全解析
前端·面试·vite
IT_陈寒39 分钟前
一文搞懂JavaScript的核心概念
前端·人工智能·后端
IT_陈寒40 分钟前
Java开发者必看!5个提升开发效率的隐藏技巧,你用过几个?
前端·人工智能·后端
前端Hardy1 小时前
Wails v3 正式发布:用 Go 写桌面应用,体积仅 12MB,性能飙升 40%!
前端·javascript·go
Highcharts.js1 小时前
Highcharts React v4 迁移指南(下):分步代码示例与常见问题解决
javascript·react.js·typescript·react·highcharts·代码示例·v4迁移
Laurence1 小时前
Qt 前后端通信(QWebChannel Js / C++ 互操作):原理、示例、步骤解说
前端·javascript·c++·后端·交互·qwebchannel·互操作
Pu_Nine_91 小时前
JavaScript 字符串与数组核心方法详解
前端·javascript·ecmascript
这是个栗子1 小时前
前端开发中的常用工具函数(六)
javascript·every
码云数智-园园1 小时前
从输入 URL 到页面展示:一场精密的互联网交响乐
前端