1、综述
CTF中,web题型主要从这几个地方入手:
(1)web服务器源码
可以尝试查看源码,或者通过伪协议下载web页面源码来寻找漏洞;
(2)web页面漏洞
可以通过web页面存在的sql注入、xss注入,来寻找利用点;
(3)模板注入
可以通过flask、Django等模板引擎,插入代码来获取flag;
(4)代码审计
有些题型直接是代码审计,需要对编程语言语法有一定的了解,这种题型建议搭建测试环境,通过调试来发现注入点、寻找漏洞利用方法;
(5)特性攻击
利用编程语言特性,是常见的出题思路。例如,PHP存在反序列化、弱类型、伪协议等问题;
(6)报文伪造
报文伪造包含许多方面,在进行web访问时,我们发起web请求的原地址、使用的浏览器等,均可使用burp等工具进行篡改伪造,这也是常见的出题考点。
(7)系统命令
在获取web服务器命令权限后,我们可使用的命令可能会被限制、或某些输入可能会被限制,例如,我们只能使用ls而不能使用cat命令,或者不能使用空格符。遇到命令执行失败的情况,可以测试出题人使用了哪种限制,并在网上寻找对应的绕过方式即可。
2、常用工具
2.1 Burp Suite
使用Burp Suite,可以实现以下功能:
(1)报文篡改
(2)web漏洞扫描
(3)框架扫描
关于burp的使用和下载,可以在网络上寻找博客,重点了解Repeater、Intruder、Decoder、Scanner模块。
2.2 Sqlmap
根据经验,sqlmap适用于半自动化测试,即已知注入点,使用sqlmap自动进行下一步的扫描和测试。熟练使用sqlmap可以显著提升sql注入水平,可以参考以下博客。
kali linux下sqlmap使用教程_destin_love的博客-CSDN博客_kali使用sqlmap
2.3 浏览器和插件
在web题型中,推荐同时安装Chrome和Firefox,以避免可能出现的兼容性问题,推荐以下插件。
(1)Proxy SwitchyOmega
Chrome插件,可以支持快速切换代理。
(2)EditThisCookie
Chrome插件,一个cookie管理器,当获得管理员cookie,可以用管理员身份登录,方便获取flag。
(3)Wappalyzer
Chrome插件,可以方便查看web页面的服务器型号、版本、服务器语言等信息,某些题目可能会伪造iis头等,影响你的判断,所以该插件结果仅做参考。
3 SQL注入
SQL注入需要有一定的mysql基础,本文