Web学习路线¶
写在前面¶
不要把CTF比赛当成你学习的全部,在后面希望学弟学妹们能多看看外面的世界,了解安全圈最新动态找到你最适合的方向
Web在CTF当中的分类¶
在CTF比赛中,Web有几大分类:
解题模式:通常是0day挖掘(主要是PHP写的各类CMS的漏洞挖掘)、nday利用(Java、nodejs);当然传统题型也是有的,主要是Bypass Waf,也就是绕过题目中的限制进行利用
AWD:
早期流行的攻防模式,主要是Web,通常都能直接在网上搜到的nday漏洞,难点在于拿到Webshell后的权限维持
AWD+:
解题与AWD的混合模式,由于AWD模式下选手直接互相干扰情况严重推出的新模式,分为Build与Fix两个阶段,第一阶段就是常规的CTF题目,而第二阶段则对之前的Web题目进行修复
内网渗透:
主要是后渗透,出现在线下比赛当中,首先前台会留给你一个利用点能获得Webshell,接着利用入侵成功的外网服务器作为跳板,攻击内网其他服务器,最后获得敏感数据,并将数据传递到攻击者,看情况安装长期后门,实现长期控制和获得敏感数据的方式
Web技能栈¶
你需要知道常见的编程语言:PHP、Java、nodejs、python
单考点主要是:信息泄露、SSTI(服务端模板注入)、XSS(跨站脚本攻击)、Bypass Waf、SQLI(SQL注入)、XXE(XML外部实体)、Unserialize(反序列化攻击)、nday利用、密钥伪造、Xs-leaks攻击等
刷题路线¶
1.攻防世界
- 只需要刷一刷Web新手区即可,学习时需要你百度搜索解法并了解,这个接断主要是培养对Web的基本感觉
2.CTFHub
- 开始进入系统学习截断,注册刷技能树Web分类,涉及信息泄露、密码口令、SQL注入、XSS、XSS、文件上传、RCE、SSRF等
3.BUUCTF
- 这个时候你已经具备了一定的能力,可以开始学习一些难题了,这时候就是不断拓展难度深入学习的过程
在BUUCTF刷了一段时间后可以尝试报名CTF比赛,彻底开启你的安全之旅
详细学习路线¶
1.首先你需要了解Web安全的一些相关基本概念,通过Google或者Baidu查看Owasp top10攻击利用类型,学会使用github搜索
2.学习常见工具的使用(BurpSuite、sqlmap、dirsearch、AntSword)
- 下载无后门版的这些软件进行安装,百度如Burpsuite的基本使用
3.实战操作,具体可以参考本Wiki当中内容配合Google\Baidu学习
-
了解SQL注入的种类、注入原理、手动注入技巧
-
研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架;
-
研究XSS形成的原理和种类,可以参考:XSS;
-
linux与windows常见系统命令,Google\Baidu搜索CTF命令执行与绕过,可以参考:命令执行绕过
-
研究XXE形成的原理和种类,可以参考:浅谈XXE漏洞原理
4.学习一门脚本编程语言,选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习,这在CTF当中将会大大简化我们的利用操作,这里推荐Python,先简简单单看看菜鸟教程并动手学习即可,学习语法、正则、文件、网络、多线程等常用库
5.源码审计与漏洞分析,需要你能独立分析脚本源码程序并发现安全问题
-
熟悉源码审计的动态和静态方法,并知道如何去分析程序,参见SecWiki-审计;
-
从Wooyun上寻找开源程序的漏洞进行分析并试着自己分析;
-
了解Web漏洞的形成原因,然后通过关键字进行查找分析,参见SecWiki-代码审计、高级PHP应用程序漏洞审核技术;
-
研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。