CTF靶场:CTF刷题,在校生备战CTF比赛,信安入门、提升自己、丰富简历之必备(一场比赛打出好成绩,可以让你轻松进大厂,如近期的各种CTF杯),在职人员可以工作意外提升信安全技能。
渗透实战靶场:挖洞、渗透实战(web、域、横向渗透),适合实战能力需要大幅度提升的同学。
一、CTF入门
最近很多朋友在后台私信我,问应该怎么入门CTF。
个人认为入门CTF之前大家应该先了解到底什么是CTF,而你学CTF的目的又到底是什么;
其次便是最好具备相应的编程能力,若是完全不具备这些能力极有可能直接被劝退。
毕竟比赛的时候动不动写个脚本,搞个审计的。
废话结束,对于CTF入门现在环境比1516年我刚接触时好太多了,当年各类资源少的可怜,SQL注入绕WAF已经算是难题了。而目前国内的氛围明显好太多了,涌现出了大量优秀的平台。作为初学者往往会遇到一个很关键的问题:该学哪个方向。
个人感觉,在不知道学啥的事情可以先学学Misc培养兴趣,然后在不断的做题中思考自己感兴趣的方向。其次日后发展也是个很关键的事情,如果准备毕业后重试网络安全,那么就需要想好Web、Pwn这些方向的日后发展。可以干哪些岗位,而这些岗位需要的对应能力、发展空间、薪资等等。
1.1、CTF常识
CTF(Capture The Flag,夺旗赛)起源于 1996 年 DEFCON 全球黑客大会,是网络安全爱好者之间的竞技游戏。CTF 竞赛涉及众多领域,内容繁杂。
CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag”,也可意译为“夺旗赛”。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。
CTF比赛知识范围大致分为:Web安全、PWN(二进制安全)、Reverse(逆向破解)、Crypto(密码学安全)、Forensics(数字取证)、Misc(杂项)
- Web安全
CTF中的Web题型,就是给定一个Web网站,选手要根据题目所提示的信息,找到网站上的flag字符串。做题的方法类似于渗透测试,但通常不会是一个完整的渗透测试,而是用到渗透测试中的某一个或某几个环节。可能涉及信息搜集、各类漏洞发现与利用、权限提升等等。 为了获取flag,可能需要拿到管理员权限,数据库权限,甚至获取网站所在服务器的权限。 所需知识: 语言:PHP、Python、JavaScript... 数据库:MySQL、MSSQL... 服务器:Apache、Nginx... Web框架:ThinkPHP、Flask... 语言特性:弱类型、截断... 函数特性:is_numeric、strcmp等;
- PWN
PWN在安全领域中指的是通过二进制/系统调用等方式获得目标主机的 shell。CTF 中主要考察二进制漏洞的发掘和利用,需要对计算机操作系统底层 有一定的了解。在 CTF 竞赛中,PWN 题目主要出现在 Linux 平台上。 所需知识: C/C++编程语言基础、编译原理、汇编、反汇编、操作系统、加密与解密、堆栈原理、栈溢出、堆溢出...
- Reverse
CTF之REVERSE题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译扎实功底。需要掌握汇编,堆栈、寄存器方面的知识。有好的逻辑思维能力。主要考查参赛选手的逆向分析能力。 所需知识: 汇编、反汇编、堆栈、调试器、代码分析、OllyDBG、IDA等
- Crypto
CTF之CRYPTO部分题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。 所需知识: 数学知识、密码编制、密码破解、古典密码、现代密码、密码分析;
- Forensics
CTF之FORENSICS包括文件格式分析,隐写术,内存转储分析或网络数据包捕获分析,提取静态数据文件中隐藏的信息的任何挑战都可以归为这一类 所需知识: 数据恢复、磁盘取证、内存取证、流量分析、文件隐写;
- Misc
就是除上述之外的乱七八糟的网络安全范围内的东西,英文全称为 Miscellaneous,意思是混杂的、各种各样的。MISC 题通 常包括文件分析、图像隐写、数据搜索、内存镜像分析和流量分析等。 题型多样,脑洞大,趣味性强是 MISC 题型的主要特点。 所需知识: 信息隐藏、文件格式、内存镜像、流量分析、数据分析、社会工程等;
1.2、CTF竞赛模式
- 解题模式(Jeopardy)
在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与。这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛,选手自由组队(人数不受限制)。题目主要包含六个类别:RE逆向工程、Pwn漏洞挖掘与利用、Web渗透、Crypto密码学、Mobile移动安全和Misc安全杂项。
- 攻防模式(Attack-Defense)
在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,通过挖掘网络服务漏洞并攻击对手服务来得分,通过修补自身服务漏洞进行防御来避免丢分。攻防模式通常为线下赛,参赛队伍人数有限制(通常为3到5人不等),可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负。这是一种竞争激烈、具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。
- 混合模式(Mix)
结合了解题模式与攻防模式的CTF赛制,主办方会根据比赛的时间、进度等因素来释放需解答的题目,题目的难度越大,解答完成后获取的分数越高。参赛队伍通过解题获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。
二、CTF赛事发布网站
i春秋: https://www.ichunqiu.com/competition
XCTF社区:https://time.xctf.org.cn
CTFwiki(入门必看wiki): https://ctf-wiki.github.io/ctf-wiki/#/introduction
CTFrank: https://ctfrank.org/
CTFtime(基本都是国外的): https://ctftime.org
三、CTF在线靶场
1、BugkuCTF(经典靶场,难度适中,适合入门刷题,题量大)
https://ctf.bugku.com/
2、北京联合大学BUUCTF(新靶场,难度中上,搜集了很多大赛原题)
https://buuoj.cn/
3、CTFSHOW:(新靶场,题量大,很多大赛会从中抽原题)
https://ctf.show/challenges
4、XCTF攻防世界:https://adworld.xctf.org.cn/task
上面4个靶场是我常去的,BugkuCTF很久以前就刷了一遍,BUUCTF刷了有70%,CTFSHOW最近一直在刷,XCTF攻防世界以前有内网渗透实验,现在主要上去刷CTF。
5、实验吧:
http://www.shiyanbar.com(2017年刷过一遍,目前站一直更新)
6、安恒周周练:https://www.linkedbyx.com/home
7、XSS专练:https://xss.haozi.me/tools/xss-encode/
8、南京邮电大学CTF网络攻防训练平台: http://ctf.nuptzj.cn/
9、网络信息安全实验平台 http://hackinglab.cn/index.php
四、漏洞靶场
1. DVWA(必练):Web安全入门必刷的靶场,包含了最常见的web漏洞,界面简单易用,通过设置不同的难度,可更好地理解漏洞的原理及对应的代码防护
http://www.dvwa.co.uk
2. Sqli-Labs(必练):一个印度大神程序员写的,用来学习sql注入的一个游戏教程,目前65关,冲关过程中学注入。
https://github.com/Audi-1/sqli-labs
3. Upload-labs(必练):一个和sqli-labs类似的靶场平台,专门学习文件上传的,目前21关。
https://github.com/c0ny1/upload-labs
4. BWVS(老版本bugku的离线版):
https://github.com/bugku/BWVS
5. BWAPP:
https://sourceforge.net/projects/bwapp
6. WAVSEP:
https://github.com/sectooladdict/wavsep
7. VulnStack:
http://vulnstack.qiyuanxuetang.net/vuln
8. Webug 3.0:
https://pan.baidu.com/s/1eRIB3Se
9. Metasploitable:
https://github.com/rapid7/metasploitable3
10. DVWA-WooYun:
https://sourceforge.net/projects/dvwa-wooyun
11. OWASP Mutillidae:
https://sourceforge.net/projects/mutillidae
12. Web for Pentester:
https://www.pentesterlab.com/exercises/web_for_pentester
五、渗透实战靶场
1、Vulhub: (各种漏洞环境集合,一键搭建漏洞测试靶场)
https://vulhub.org/(在线版)
https://github.com/vulhub/vulhub(离线版)
2、vulnhub:(国外实战靶场,适合入门提高)
https://www.vulnhub.com/
3、vulnstack(红队实战靶场,域、横向渗透、多层网络,强烈推荐,目前共7个靶场,网上writeup齐全)
http://vulnstack.qiyuanxuetang.net/vuln/#
4、WebGoat(WEB漏洞测试和练习)
https://github.com/WebGoat/WebGoat
5、Web For Pentester(web漏洞检测技术)
https://www.pentesterlab.com
6、VulApps(快速搭建各种漏洞环境与安全工具环境)
http://vulapps.evalbug.com/
7、bWAPP(集成了各种常见漏洞和最新漏洞的开源Web应用程序)
http://www.itsecgames.com/
8、btslab(不同类型的Web应用程序漏洞)
https://github.com/CSPF-Founder/btslab/
9、pikachu(一个好玩的Web安全-漏洞测试平台)
https://github.com/zhuifengshaonianhanlu/pikachu
六、CTF工具包
CTF大赛, 俗话说“兵马未动,粮草先行”。打CTF手里的武器工具少不了,CTF比赛有些线下赛,不提供互联网环境,这就更需要开战前把工具包准备好了。
工具包目录如下文,文末有云盘下载链接(部分工具版本稍早,但都比较稳定)。
CTF工具包大合集目录如下:
工具包目录:
-
综合利用工具(包含菜鸟教程、w3cschool、各种API)
-
抓包工具
-
注入工具
-
隐写工具
-
提权工具
-
数据库工具
-
扫描工具
-
逆向工具(包含反编译工具)
-
内网工具
-
二进制工具
-
代理转发类工具
-
暴力破解工具
-
安装环境包(Java、python、php)
-
XSS
-
webshell
工具包目录