Skip to content

Web逆向零基础学习计划

🎯 学习目标

从零基础开始,系统学习 Web 逆向工程的核心知识,掌握 Web 应用的逆向分析技能,能够分析和还原加密算法、理解混淆代码、突破反爬虫机制。

📚 知识体系总览

Plain

Web逆向工程
├── 计算机基础
│   ├── 操作系统基础
│   ├── 计算机体系结构
│   └── 数据表示与编码
├── 网络基础
│   ├── HTTP/HTTPS协议
│   ├── TCP/IP协议栈
│   └── 网络请求分析
├── 前端基础
│   ├── HTML/CSS/JavaScript
│   ├── 浏览器工作原理
│   └── DOM/BOM操作
├── 加密与安全
│   ├── 对称加密算法
│   ├── 非对称加密算法
│   ├── 哈希算法
│   └── 编码技术
├── 逆向技术
│   ├── JavaScript混淆与还原
│   ├── WebAssembly分析
│   ├── 调试与Hook技术
│   └── 协议分析与还原
└── 实战技能
    ├── 工具使用
    ├── 靶场练习
    └── 项目实践

📅 学习阶段规划

第一阶段:基础入门(1-2 个月)

目标:建立完整的知识框架,掌握基础概念

第 1-2 周:计算机与网络基础

  • 计算机基础

    • 操作系统基础(Windows/Linux 基本操作)

    • 二进制、八进制、十六进制转换

    • 字符编码(ASCII、Unicode、UTF-8)

  • 网络基础

    • TCP/IP 协议栈理解

    • HTTP 协议深度学习

      • 请求方法(GET、POST、PUT、DELETE 等)

      • 请求头 / 响应头分析

      • 状态码含义

      • Cookie、Session、JWT 认证

学习资源:

  • 《HTTP 权威指南》

  • MDN Web 文档:HTTP 协议部分

  • W3Schools:HTML/CSS/JavaScript 基础

第 3-4 周:前端基础

  • HTML 基础

    • 标签结构

    • 表单元素

    • 常用属性

  • CSS 基础

    • 选择器

    • 盒模型

    • 布局基础

  • JavaScript 核心

    • 变量、数据类型、运算符

    • 函数、闭包、原型链

    • 异步编程(回调、Promise、async/await)

    • DOM 操作

    • 浏览器对象模型(BOM)

实践任务:

  • 搭建个人静态网站

  • 实现简单的表单验证

  • 编写异步请求代码

第二阶段:安全与加密(1-2 个月)

目标:掌握加密算法原理,理解安全机制

第 1-2 周:加密算法基础

  • 对称加密

    • AES 算法原理

    • DES 算法原理

    • 加密模式(ECB、CBC、CFB、OFB)

  • 非对称加密

    • RSA 算法原理

    • 密钥对生成

    • 加密 / 解密流程

  • 哈希算法

    • MD5、SHA1、SHA256

    • HMAC 算法

    • 应用场景(密码存储、数据完整性校验)

  • 编码技术

    • Base64 编码

    • URL 编码

    • Unicode 编码

学习资源:

  • 《密码学与网络安全》

  • CryptoJS 官方文档

  • 各种加密算法的在线演示工具

第 3-4 周:Web 安全基础

  • 常见 Web 漏洞

    • SQL 注入原理与防御

    • XSS 攻击类型与防护

    • CSRF 攻击原理

    • 命令注入

  • 安全机制

    • 同源策略

    • CORS 跨域资源共享

    • 内容安全策略(CSP)

    • HTTPS 与 SSL/TLS

实践任务:

  • 实现各种加密算法的 JavaScript 版本

  • 分析网站的认证机制

  • 学习使用浏览器开发者工具

第三阶段:逆向技术核心(2-3 个月)

目标:掌握 Web 逆向的核心技术和工具

第 1-2 周:工具掌握

  • 浏览器开发者工具

    • Elements 面板:DOM 分析

    • Console 面板:代码执行

    • Sources 面板:断点调试

    • Network 面板:抓包分析

    • Application 面板:存储分析

  • 抓包工具

    • Fiddler 使用

    • Charles 使用

    • Burp Suite 基础

  • 调试工具

    • Chrome DevTools 高级调试

    • VS Code 调试配置

实践任务:

  • 使用抓包工具分析网站请求

  • 调试并修改网页 JavaScript 代码

  • 分析网站的 API 接口

第 3-6 周:JavaScript 逆向

  • 代码混淆技术

    • 变量名混淆

    • 控制流平坦化

    • 字符串加密

    • 死代码插入

  • 反混淆技术

    • 代码格式化

    • 变量名还原

    • 控制流分析

    • 字符串解密

  • AST 抽象语法树

    • AST 结构理解

    • 使用工具(Esprima、Acorn)解析 JS 代码

    • 基于 AST 的代码转换

实践任务:

  • 分析并还原简单的混淆代码

  • 编写反混淆脚本

  • 实现基于 AST 的代码优化

第 7-8 周:WebAssembly 逆向

  • WASM 基础

    • WebAssembly 概念

    • 二进制格式理解

    • 与 JavaScript 交互

  • WASM 逆向工具

    • WABT 工具链

    • wasm2c、wasm2wat

    • IDA Pro 分析 WASM

  • 实战分析

    • 识别 WASM 模块

    • 分析导出函数

    • 还原算法逻辑

第四阶段:实战提升(2-3 个月)

目标:通过靶场练习和项目实践提升技能

第 1-4 周:靶场练习

推荐靶场:

  1. 基础类靶场

  2. 进阶靶场

    • Pikachu:综合漏洞练习平台

    • WebGoat:OWASP 官方靶场

    • Hack The Box:在线实战平台

    • Try Hack Me:初学者友好的在线平台

练习方法:

  1. 分析网站功能和交互流程

  2. 抓包分析请求参数

  3. 定位关键 JavaScript 代码

  4. 断点调试分析算法

  5. 用 Python 重写关键逻辑

第 5-8 周:项目实践

项目 1:爬虫逆向实战

  • 选择目标网站(如电商、社交媒体)

  • 分析请求参数加密

  • 还原签名算法

  • 编写爬虫程序

项目 2:验证码识别

  • 分析验证码生成逻辑

  • 识别验证码类型(数字、字母、滑块、点选)

  • 实现自动化识别

项目 3:反爬虫突破

  • 分析反爬虫机制

  • 突破浏览器指纹识别

  • 处理验证码和人机验证

第五阶段:高级进阶(2-3 个月)

目标:掌握复杂逆向技术,解决实际问题

第 1-2 周:高级 Hook 技术

  • Frida 框架

    • 安装与配置

    • JavaScript API 使用

    • 函数 Hook

    • 参数修改

  • 浏览器扩展开发

    • Chrome 扩展开发

    • 脚本注入

    • 网络请求拦截

第 3-4 周:协议分析与还原

  • WebSocket 协议

    • 握手过程

    • 数据帧格式

    • 逆向分析

  • Protobuf 协议

    • 协议结构

    • 二进制格式

    • 逆向还原

  • 自定义协议

    • 数据包分析

    • 协议字段识别

    • 编解码逻辑还原

第 5-8 周:综合项目

  • 复杂网站逆向

    • 多参数加密分析

    • 动态签名生成

    • 会话保持机制

  • APP 逆向联动

    • 移动端 WebView 分析

    • 数据传输加密

    • 跨平台逆向

🛠️ 必备工具清单

浏览器工具

  • Chrome DevTools:前端调试核心工具

  • Firefox Developer Tools:备选调试工具

  • 浏览器扩展

    • Vue DevTools

    • React Developer Tools

    • JSON Viewer

    • ModHeader

抓包工具

  • Fiddler:Windows 平台抓包工具

  • Charles:跨平台抓包工具

  • Burp Suite:专业渗透测试工具

  • mitmproxy:命令行抓包工具

逆向工具

  • IDA Pro:专业逆向分析工具

  • Ghidra:开源逆向工具

  • JADX:Java 反编译工具

  • Frida:动态插桩工具

  • Radare2:开源逆向框架

开发工具

  • Visual Studio Code:代码编辑器

  • Node.js:JavaScript 运行环境

  • Python:脚本编写语言

  • Git:版本控制工具

📚 推荐学习资源

书籍资源

  1. 《Web 前端黑客技术揭秘》

  2. 《HTTP 权威指南》

  3. 《JavaScript 高级程序设计》

  4. 《密码学与网络安全》

  5. 《逆向工程权威指南》

在线资源

视频资源

  • B 站:Web 逆向相关教程

  • YouTube:LiveOverflow 频道

  • 极客时间:Web 安全相关课程

社区资源

⚠️ 重要提醒

法律与伦理

  • 必须遵守法律法规,仅在授权环境下进行测试

  • 禁止对未授权系统进行逆向分析

  • 尊重他人知识产权和隐私

  • 遵守《网络安全法》等相关法律法规

学习建议

  • 理论与实践结合,多动手练习

  • 从简单到复杂,循序渐进

  • 建立知识体系,不要孤立学习

  • 加入技术社区,与同行交流

  • 关注技术发展,持续学习新技能

🎯 技能评估标准

初级水平(3 个月)

  • 理解 HTTP 协议和前端基础

  • 掌握常见加密算法原理

  • 能够使用浏览器开发者工具

  • 完成 DVWA 基础靶场

中级水平(6 个月)

  • 能够分析和还原简单的混淆代码

  • 掌握常见的逆向工具使用

  • 完成中等难度的靶场练习

  • 能够编写简单的逆向脚本

高级水平(12 个月)

  • 能够分析复杂的加密算法

  • 掌握 WebAssembly 逆向技术

  • 能够突破高级反爬虫机制

  • 独立完成复杂项目的逆向分析


学习是一个持续的过程,建议制定详细的学习计划并严格执行。遇到困难时不要气馁,多查阅资料、多实践、多请教他人。祝你在 Web 逆向的学习道路上取得成功!

(注:文档部分内容可能由 AI 生成)

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.7.1