Web
CTF 中的 Web 方向通常指的是通过阅读阅读网站源码,或是根据网站已给信息,实现对网站的漏洞利用。
例如,通过输入框输入一些精心设计的内容,可以获取到网站的数据或者服务器权限。
这是由于网站是由前端和后端构成的。前端指的是你看到的、能接触到的内容,而后端则是服务器对你发起的网络请求进行一定的处理等操作。通过构造一些请求从而达到「欺骗」后端的目的,实现对后端服务器的部分控制。
常见的 Web 题型有 SQL 注入、模板注入(SSTI)、PHP 漏洞利用等。
收拾行李
Web 方向需要有较强的代码阅读能力(即便是未接触过的代码,不要求会写,但需能够阅读),以及搜索能力。
以下建议可能能够帮助你提升代码阅读能力,但任何事物都是循序渐进的,你也可以在做题的同时学习和成长。
- 学习和掌握 Python 语言
- 在做题中遇到难以读懂的代码时询问搜索引擎或 AI
下面是一些你需要了解的概念或过程,若你此前并不了解,请自行通过搜索引擎或视频网站学习:
- IP 地址、端口、域名
- 通过网址访问网页的通信过程
- Linux 操作系统和其基本使用
- 终端、命令提示符
- Web 服务器,常见的 Web 服务器
- 常见的编程语言,用于 Web 服务器编程的常见编程语言
- HTTP 报文格式
- 浏览器 Cookie
- 正则表达式
此外,你还需要了解开源和熟悉 Github,并最好具备访问全球互联网的能力。
注意事项
Web 安全技术威胁性大,请勿用于攻击和测试境内的目标,未授权的攻击测试行为将承担巨大的法律责任。若您决心踏上这一旅途,请立志成为一名将技术服务于社会和人民的安全从业人员(白帽子)。
出发远航
下面将列举一些常见的考点,以便你在入门的旅途中找到搜索的方向。一些词汇你可能感到陌生,你也并不需要立即掌握它们,但需要你遇到时能学习并铭记在心,这将非常考查你的知识接受能力和自学能力。这里将不会列举相对进阶的知识点。
- PHP 考点
- 弱类型比较
- PHP 伪协议
- PHP 反序列化
- PHP 版本引发的
- MySQL 数据库考点
- 联合注入
- 报错注入
- 布尔注入
- 延时盲注(时间盲注)
- 模板注入(SSTI)
常见的利用方式(思路)有:
- 任意文件读/写
- 远程代码执行(RCE)
- 服务端请求伪造(SSRF)
- 路径穿越