【AI赋能】MCP+Skill能力下的前端JS逆向自动化落地(附工具)

【AI赋能】MCP+Skill能力下的前端JS逆向自动化落地(附工具)

项目地址

https://github.com/Fausto-404/js-reverse-automation--skill

js-reverse-automation--skill

结合chrome-devtools-mcp的能力并加上Skill的规范,实现JSRPC+Flask+autoDecoder方案的前端JS逆向自动化分析,提升JS逆向的效率

适用场景

  • 需要快速落地前端签名/加密参数逆向
  • 需要将js逆向逻辑封装为可复用的代码
  • 需要与 Burp 配合进行抓包、改包

流程设计思路

针对js逆向中常用的远程调用法进行js逆向(如JSRPC+Mitmproxy、JSRPC+Flask等)中,初始配置阶段中面对的定位加密函数、编写注册代码、编写python代码等繁琐操作,通过引入AI的MCP和Skill技术进行赋能,让AI自动完成函数发现与注册代码生成,最终实现从“半自动”到“高自动”的跨越,人员全程只需下方指令,并最终配置一下burp即可完成JS逆向的全流程。

核心能力

  • 基于 MCP 连接真实浏览器,触发并跟踪js加密/签名链路
  • 自动定位 sign / enc / token 等关键参数生成入口
  • 自动生成 JSRPC 注入与注册代码
  • 自动生成 Python Flask 代理代码
  • 输出 Burp autoDecoder 对接说明,支持端到端联调
  • 支持AntiDebug_Breaker的11项反调试能力

项目结构

js-reverse-automation--skill/ ├── README.md # 项目说明、使用方式、更新说明和结构说明。 ├── SKILL.md # Skill 主控文件。只负责定义任务如何被触发、必须输入什么、流程怎么分阶段、输出和验收怎么要求。 ├── agents/ │ └── openai.yaml # Skill 的 agent 入口配置。负责定义默认提示词、默认输入格式和执行约束。 ├── artifacts/ # 运行期目录,用来承接流程中间产物和最终校验报告。预期会出现的文件如下: │ ├── artifacts/phase0_input.json # 规范化后的输入 │ ├── artifacts/phase1_trace.json # 浏览器链路复现结果 │ ├── artifacts/phase2_entrypoints.json # 参数入口识别结果 │ ├── artifacts/phase3_dependencies.json # 依赖、上下文和调用方式提取结果 │ └── artifacts/validation_report.json # 最终校验报告 ├── references/ │ ├── references/workflow-recon.md # 阶段流程说明书。 │ ├── references/output-contract.md # 输入输出契约说明书。 │ ├── references/failure-recovery.md # 失败恢复和诊断格式说明书。 │ ├── references/validation-checklist.md # 验收标准说明书。 │ └── references/antidebug/ │ ├── references/antidebug/debugger-loop.md # 处理无限 debugger、eval、Function 类问题。 │ ├── references/antidebug/console-detect.md # 处理控制台检测、日志篡改、清屏等问题。 │ ├── references/antidebug/timer-check.md # 处理时间差、性能计时、Promise 时序检测。 │ ├── references/antidebug/env-detect.md # 处理窗口大小、webdriver、UA、DevTools 检测等环境识别问题。 │ ├── references/antidebug/proxy-guard.md # 处理跳转、关闭页面、history、代理拦截等链路阻断问题。 │ └── references/antidebug/dynamic-alias.md # 处理动态别名、wrapper、resolver 型入口和不稳定路径。 └── scripts/ ├── scripts/check_inputs.py # 输入校验器。 ├── scripts/emit_analysis_result.py # 统一分析产物生成器。 ├── scripts/emit_jsrpc_stub.py # JSRPC 代码生成器。 ├── scripts/emit_flask_proxy.py # Flask 代理生成器。 ├── scripts/emit_burp_doc.py # Burp autoDecoder 文档生成器。 └── scripts/validate_artifacts.py # 全链路校验器。

使用示意

这边演示使用的是codex5.3(其他平台同理)

1、下载skills放置在codex的skills目录中,mac端的路径为/Users/用户名/.codex/skills/

2、将chrome-devtools-mcp服务写进 Codex 的配置

codex mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest

3、修改 Codex 的配置文件MAC的在~/.codex/config.toml,添加如下字段

[mcp_servers.chrome-devtools] command = "npx" args = ["-y", "chrome-devtools-mcp@latest"]

4、检测是否生效

5、启动mcp服务,当看到打开浏览器后MCP服务就配置好了。

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --remote-debugging-port=9222 \ --remote-debugging-address=0.0.0.0

6、在codex客户端中使用该skills

7、输入所需要的信息

1、目标网址(完整 URL): 2、需要分析的加密参数名(如 sign / enc / token): 3、可复现请求示例(优先给 fetch/抓包原始请求): 4、环境限制(浏览器版本、是否需要代理/插件、是否允许注入):

8、等待程序运行完成即可

效果检验

1、启动JSRPC

2、在浏览器开发者工具的Console中,执行JSRpc项目中的 JsEnv_Dev.js文件内容。

3、在控制台注入AI生成的jsrpc_inject_hr_ncu_password.js。

4、测试jsrpc调用函数是否正常,可以看到是没问题的。

http://127.0.0.1:12080/go?group=fausto&action=generate_password_md5&param=111111

5、运行flask_proxy_hr_ncu.py

6、测试Flask是否可以正常加密,可以看到也是没问题的。

curl -X POST http://127.0.0.1:8888/encode \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "dataBody=username=111111&password=111111&code=1234&role=000002"

7、最后根据Burp autoDecoder 配置说明配置burp的autoDecoder插件,也成功加密了参数,整体成功运行完成

引用工具

首发地址

【AI赋能】MCP+Skill能力下的前端JS逆向自动化落地

作者:Fausto

https://xz.aliyun.com/news/91527

文章转载自 先知社区

Read more

Python---webbrowser库 跨平台打开浏览器的控制接口

Python---webbrowser库 跨平台打开浏览器的控制接口

webbrowser是Python内置的标准库(无需额外安装),核心定位是跨平台的浏览器控制接口——它能让你通过Python代码调用系统默认(或指定)的浏览器,打开指定的URL、新建窗口/标签页,是实现“代码触发浏览器访问网页”的轻量级解决方案。 与Selenium、Playwright等重量级浏览器自动化库不同,webbrowser仅聚焦“打开URL”这一核心场景,不支持点击、填写表单、截图等高级操作,但胜在轻量、无依赖、上手成本极低,是日常小工具开发的首选。 一、核心概念与基础架构 在深入函数前,先理解webbrowser的底层设计逻辑 1.1 浏览器控制器(Browser Controller) webbrowser的核心是“浏览器控制器”——每个控制器对应一种浏览器(如Chrome、Edge),封装了调用该浏览器的底层逻辑。库内置了多个控制器类,均继承自基类BaseBrowser: * BaseBrowser:所有控制器的抽象基类,定义了核心方法(如open()、open_new()),无实际实现; * GenericBrowser:通用控制器,

Leaflet赋能:WebGIS视角下的省域区县天气可视化实战攻略

Leaflet赋能:WebGIS视角下的省域区县天气可视化实战攻略

目录 前言 一、空间数据基础 1、省域空间检索 2、区县天气信息检索 二、天气数据简介 1、省域天气数据获取 2、区县名称不一致 三、SpringBoot后台实现 1、Java后台天气数据查询 2、控制层实现 四、WebGIS前端实现 1、气温颜色及图例初始化 2、气温数据展示实现 五、成果展示 1、湖南省天气展示 2、西藏自治区天气展示 六、总结 前言         在当今数字化时代,地理信息系统(GIS)技术与Web技术的深度融合,为地理信息的可视化展示带来了前所未有的机遇。WebGIS作为一种基于网络的地理信息系统,能够将地理空间数据以直观、便捷的方式呈现给用户,极大地拓展了地理信息的应用范围和价值。而天气数据作为与人们生活息息相关的重要地理信息之一,其可视化展示对于气象预报、灾害预警、交通规划、农业生产等诸多领域都有着极为重要的意义。本文将从WebGIS的视角出发,

《C++ Web 自动化测试实战:常用函数全解析与场景化应用指南》

《C++ Web 自动化测试实战:常用函数全解析与场景化应用指南》

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 元素定位:自动化测试的 “精准导航” * 1.1 cssSelector:简洁高效的选择器 * 1.2 xpath:灵活强大的路径语言 * 二. 测试对象操作:定位后的 “核心动作” * 2.1 点击与提交:触发页面交互 * 2.2 文本输入与清除:模拟用户输入 * 2.3 文本与属性获取:验证测试结果 * 三. 窗口与弹窗控制:解决 “多窗口与弹窗干扰” * 3.1 窗口控制:句柄是关键 * 3.

前端实现B站视频画中画功能 - 完整代码实现主页面和小窗同步视频控制功能

前端实现B站视频画中画功能 - 完整代码实现主页面和小窗同步视频控制功能

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》专栏19年编写主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战 🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解 🌛《开源项目》本专栏主要介绍目前热门的开源项目,带大家快速了解并轻松上手使用 🍎 《前端技术》专栏以实战为主介绍日常开发中前端应用的一些功能以及技巧,均附有完整的代码示例 ✨《开发技巧》本专栏包含了各种系统的设计原理以及注意事项,并分享一些日常开发的功能小技巧 💕《Jenkins实战》专栏主要介绍Jenkins+Docker的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程 🌞《Spring Boot》专栏主要介绍我们日常工作项目中经常应用到的功能以及技巧,代码样例完整 👍《Spring Security》专栏中我们将逐步深入Spring Security的各个