技能
CTF 中主攻 Web 题的大(Web)佬(狗)们,通常需要点亮以下技能:
编程语言
编程语言黑魔法才是关键。
JavaScript
PHP
Python
Java
……
数据库
各种数据库的特性与差别,也包括黑魔法。
MySQL
msSQL
Access
Oracle
……
CVE 漏洞
利用与分析。
这个需要多去看看近期漏洞。
……
基础知识
网站运行原理
HTTP 协议
- 概述
在传输层基于 TCP/IP 协议进行传输,本身属于 OSI 七层模型中的应用层。
HTTP 协议工作于 Client-Server 架构之上。例如,最常见的 client 是 Browser,浏览器作为 HTTP client 通过 URL 想 HTTP server 即 Web 服务器发送 HTTP 请求包,Web 服务器根据 HTTP 协议解析请求后,向 client 发送相应信息。
- 特点
简单,快速。几个字段就可以完整地描述所要请求的资源和数据内容。
灵活性。客户端以及服务器只需要使用Content-type字段来指定当前数据内容的MIME类型。
无连接。限制每次连接只处理一个请求。服务器处理完客户端请求并收到客户端应答后,即断开连接。
无状态。对于事物处理没有记忆能力。如果后续处理需要前面的信息,则必须重传,可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时应答较快。
- 消息结构
前置术语
URI:统一资源标识符
回车符:%0d
换行符:%0a
请求数据包结构
client 发送一个 HTTP 请求到 server 的请求报文包括以下格式:
请求行(request line)、请求头部(header)、空行、请求数据。
响应数据包结构
HTTP 相应也由四个部分组成:
状态行、消息报头、空行、响应正文。
- 请求方法
HTTP1.0
GET,请求指定的页面信息,并返回实体主体。
POST,向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中,POST请求可能会导致新的资源的建立、已有资源的修改。
HEAD,类似于GET请求,只不过返回的响应中没有具体内容,用于获取报头。
HTTP1.1 新增
OPTIONS,
PUT,
DELETE,
TRACE,
CONNECT,
Web 语言与容器
实验:抓包与重放
题型
以下常见套路,应该都熟悉才好。
爆破
md5
爆破随机数
验证码识别
……
绕 WAF
绕过拦截。
花式绕 MySQL
绕文件读取关键词检测
……
PHP 特性
花式玩弄 PHP。