Web 的入门

Web 安全 发布于 2025-09-09 最后更新于 22 天前


什么是 Web

在 CTF 竞赛中,常见的大方向有 Web、Pwn、Reverse(逆向)、Crypto(密码学)、Misc 五个方向。

其中 Web 方向是最常见、最贴近实际攻防的方向。Web 本质上是用户(浏览器/客户端) ↔ 服务器 ↔ 数据库之间的交互。

简单说,Web 安全就是研究如何在网站交互和处理数据的过程中找到漏洞,并加以利用。

Web 与其他方向的区别

  • 贴近现实:Web 题目最接近真实黑客渗透。你学会的很多东西,现实里就能用(比如网站架构、SQL 注入、XSS)。
  • 门槛较低:相比 Pwn、逆向、密码学,Web 入门相对容易,不需要很深的汇编/数学知识。
  • 广度大:涉及网站架构、协议、编程、数据库、框架,非常综合。

Web 方向的知识点分类

  1. 协议与基础
    • HTTP/HTTPS 基础(请求方法 GET/POST、Header、Cookie、Session、Token)
    • 前端知识(HTML、JS、表单提交)
    • 常见 Web 架构(PHP+MySQL,Python Flask,Java Spring等)
    • linux 系统的基础命令
  2. 常见漏洞类型
    • 语言利用
      • php 弱比较
      • 哈希碰撞
      • 危险函数实现 RCE
      • 反序列化漏洞(PHP unserialize / Python pickle等)
      • js 原型链污染
    • 脚本类漏洞
      • SSTI(服务器端模板注入)
      • XSS(跨站脚本攻击)
      • CSRF(跨站请求伪造)
    • 文件相关漏洞
      • 文件上传漏洞(upload)
      • 文件包含漏洞(LFI/RFI)
    • 综合利用
      • WAF 绕过(过滤器绕过技巧)
      • SSRF 打内网(利用服务器请求本地/内网服务)
      • XXE(XML 外部实体注入)
      • JWT 安全问题(伪造 Token)
      • 越权访问(低权限访问高权限功能)
  3. 工具利用
    • Burp Suite(拦截修改请求)
    • dirsearch(目录扫描)
    • Hackbar插件
    • 蚁剑(WebShell 管理工具)
    • pupstudy(PHP 集成环境套件)
    • 手写 Python 脚本

作为新手我应该从哪里学起

刚开始主要就学习 协议与基础 模块的知识。

对于 HTTP/HTTPS 协议先了解协议本身,学习请求方法 GET/POST、Cookie 和常见请求头。

对于前端知识主要学习读 HTML 和 JavaScript、了解 CSS,JavaScript 内容比较多,先会读简单的前端 js 代码之后再深入掌握。

对于 Web 架构从 php 学起就行,之后再慢慢接触 python、node.js 和 java 的框架。你要了解一个网站的基础结构,是如何去运转实现功能的。

对于服务端编程语言也是从 php 学起,可以在菜鸟教程网站初步学习。之后还要学习 python、JavaScript 和 java。

对于 linux 系统要了解什么是 linux 系统,学会查看目录,读取文件内容,查看环境变量等基础命令。

  • HTTP/HTTPS 基础(请求方法 GET/POST、Header、Cookie、Session、Token)
  • 前端知识(HTML、JS、表单提交)
  • 常见 Web 架构(PHP+MySQL,Python Flask,Java Spring等)
  • linux 系统的基础命令

安装好 linux 系统,推荐 kali。工具方面 Burp Suite、dirsearch、Hackbar 插件都可以下载好,前期就会用到,蚁剑在文件上传漏洞也会用到。

如何学习

一边学习基础知识一边尝试解决新生平台上的题目。如果遇到不会的地方就继续去查询知识点,学习相关内容,回来继续做题,一边做题一边在做题的过程中发现知识点、解决知识点。

无论是在学习基础知识还是做题的过程中,亦或者是没有明确的学习方向,只要遇到了解决不了的问题都可以来问学长们,web 方向可以问我或者另一个 web 管理员。

善用搜索引擎和 AI,搜索引擎推荐用谷歌,AI 推荐 GPT。