CTF 题目类型一般分为 Web 渗透、RE 逆向、Misc 杂项、PWN 二进制漏洞利用、Crypto 密码破译。
一、Web类题目
在传统的CTF线上比赛中,Web类题目是主要的题型之一,相较于二进制、逆向等类型的题目,参赛者不需掌握系统底层知识;相较于密码学、杂项问题,不需具特别强的编程能力,故入门较为容易。Web类题目常见的漏洞类型包括注入、XSS、文件包含、代码执行、上传、SSRF等。
信息搜集
前期的题目信息搜集可能对于解决CTF线上比赛的题目有着非常重要的作用
敏感目录泄露
通过敏感目录泄露,我们往往能获取网站的源代码和敏感的URL地址,如网站的后台地址等。
比如:
攻击者可以通过.git文件夹中的信息获取开发人员提交过的所有源码,进而可能导致服务器被攻击而沦陷。
admin之类的敏感后台文件夹
敏感备份文件
通过一些敏感的备份文件,我们往往能获得某一文件的源码,亦或网站的整体目录等。
比如:vim的备份文件
常规文件
比如:
robots.txt:记录一些目录和CMS版本信息。
readme.md:记录CMS版本信息,有的甚至有Github地址。
Banner识别
一个网站的Banner信息(服务器对外显示的一些基础信息)对解题有着十分重要的作用,选手往往可以通过Banner信息来获得解题思路,如得知网站是用ThinkPHP的Web框架编写时,我们可以尝试ThinkPHP框架的相关历史漏洞。
SQL注入
而由于开发者在程序编写过程中,对传入用户数据的过滤不严格,将可能存在的攻击载荷拼接到SQL查询语句中,再将这些查询语句传递给后端的数据库执行,从而引发实际执行的语句与预期功能不一致的情况。这种攻击被称为SQL注入攻击。
SQL注入漏洞也是现实场景下最常见的漏洞类型之一。
SQL注入,包括数字型注入、UNION注入、字符型注入、布尔盲注、时间注入、报错注入和堆叠注入等注入方式。
任意文件读取漏洞
所谓文件读取漏洞,就是攻击者通过一些手段可以读取服务器上开发者不允许读到的文件。
文件读取漏洞常常意味着被攻击者的服务器即将被攻击者彻底控制。
SSRF漏洞
SSRF(Server Side Request Forgery,服务端请求伪造)是一种攻击者通过构造数据进而伪造服务器端