技能
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。
弱类型
strpos 和===
反序列化 destruct
\0 截断
iconv 截断
……
密码题
hash 长度扩展
异或
移位加密各种变形
32 位随机数过小
找源码
Git
SVN
xxx.php.swp
www.(zip|tar.gz|rar|7z)
xxx.php.bak
文件上传
文件后缀
.php345
.inc
.phtml
.phpt
.phps
文件内容检测
花式解析漏洞
MySQL
SQL注入攻击
和PHP弱类型类似的特性
0x,0b,1e之类
隐式转换
open_basedir&disable_functions花式绕过技巧
dl
imagick
bash漏洞
DirectoryIterator
各种二进制选手插足的方法
条件竞争
竞争删除前生成shell
竞争数据库无锁多扣钱
社工
花式查社工库,微博、QQ
whois
Windows特性
短文件名
IIS解析漏洞
NTFS文件系统通配符
::$DATA
冒号截断
SSRF
花式探测端口
302跳转
花式协议利用
gophar直接取shell
XSS
各种浏览器auditor绕过
富文本过滤黑白名单绕过
flash XSS
CSP绕过
XXE
各种XML存在地方
rss/word/流媒体
各种XXE利用方法
SSRF,文件读取
协议
花式IP伪造
X-Forwarded-For,X-Client-IP,X-Real-IP,CDN-Src-IP