什么是 Web
在 CTF 竞赛中,常见的大方向有 Web、Pwn、Reverse(逆向)、Crypto(密码学)、Misc 五个方向。
其中 Web 方向是最常见、最贴近实际攻防的方向。Web 本质上是用户(浏览器/客户端) ↔ 服务器 ↔ 数据库之间的交互。
简单说,Web 安全就是研究如何在网站交互和处理数据的过程中找到漏洞,并加以利用。
Web 与其他方向的区别
- 贴近现实:Web 题目最接近真实黑客渗透。你学会的很多东西,现实里就能用(比如网站架构、SQL 注入、XSS)。
- 门槛较低:相比 Pwn、逆向、密码学,Web 入门相对容易,不需要很深的汇编/数学知识。
- 广度大:涉及网站架构、协议、编程、数据库、框架,非常综合。
Web 方向的知识点分类
- 协议与基础
- HTTP/HTTPS 基础(请求方法 GET/POST、Header、Cookie、Session、Token)
- 前端知识(HTML、JS、表单提交)
- 常见 Web 架构(PHP+MySQL,Python Flask,Java Spring等)
- linux 系统的基础命令
- 常见漏洞类型
- 语言利用
- php 弱比较
- 哈希碰撞
- 危险函数实现 RCE
- 反序列化漏洞(PHP unserialize / Python pickle等)
- js 原型链污染
- 脚本类漏洞
- SSTI(服务器端模板注入)
- XSS(跨站脚本攻击)
- CSRF(跨站请求伪造)
- 文件相关漏洞
- 文件上传漏洞(upload)
- 文件包含漏洞(LFI/RFI)
- 综合利用
- WAF 绕过(过滤器绕过技巧)
- SSRF 打内网(利用服务器请求本地/内网服务)
- XXE(XML 外部实体注入)
- JWT 安全问题(伪造 Token)
- 越权访问(低权限访问高权限功能)
- 语言利用
- 工具利用
- 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。

Comments NOTHING