入门2年的ctf新手自述--web方向
为什么想写这篇博客,为什么要要跟大家分享?
因为我的确入门费了非常多的时间,有很多坎。首先是自己的精力因为很多事情,确实分散了很多,有创新创业项目、学生工作、学业等等,没有非常多时间来练习,我上大学前也没有计算机基础,甚至电脑从中学后就基本没碰过(因为有了平板.....),目前已经大学三年级,所以我可以说错过了练习阶段的黄金期。
但是我还在坚持,为什么?因为我非常喜欢这个ctf方向,我一度思考着,如果我没有早早定下职业规划,我可能想把信息安全、网络安全定为我未来职业方向。我甚至会假期休息的时候,放个音乐,找个靶场,做个题拿到权限,这种成就感非常强烈。
其次,是两年有学习上很多困难,一度迷失方向,甚至现在也不敢肯定自己走对了,但是我觉得我不会放弃他。然后我想的是把我遇到的困难,用的一些好的工具分享给大家。
在此声明几点
- 全文是我个人的经验总结,有一些问题是正常的,还需要大家亲自去实践总结
- 可能会有一些需要交钱的服务,在此声明,不是打广告的!没有任何回扣,只是想把我觉得好的资源推荐给大家。
首先,什么是ctf比赛(简单介绍一下)
CTF(Capture The Flag)中文一般译作夺旗赛
在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。
CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。(.....百度)
从我的理解就是,学的是whitehat,白帽子,不是黑帽子。绕过安全机制,拿到权限。
简单的举几个形象例子
电视剧《亲爱的热爱的》实际上是以电竞比赛模板的,现实生活中的安全网络“大神”可不像剧中那样
更像是这样
总之,是很严肃的!但对于很多像ACM、数学物理竞赛来说生动、有趣许多。
因为更倾向于实际生活,目标明确--->拿到flag
学习的一些问题
- 实践、动手能力要求很高,需要很多工具,这其中面临很多的环境配置问题
- 知识面非常非常广,几乎没有很明确的学习线路,涉及网络的各个方面,同时关联性也很差
- 入门时间长,大部分同学都卡在了初级阶段,就放弃了
- 网络有用的资源较少,靶场环境质量也参差不齐
- 很多同学卡在签到题目,不能独立做出来题目,很有挫败感
那么我将围绕这几个问题,从浅到深的去给大家讲一下
1 有哪些理论基础-web方向
计算机网络(核心)、熟悉Linux/unix系统(尤其是命令)、程序设计基础(C语言+一门高级语言)
php语言基础(会大量涉及)
以上是很重要的
面向对象程序设计基础、python语言基础(网络编程方向,前期不会正常,后期需要利用python写脚本)
一定的数据库基础、一定的web搭建基础、漏洞挖掘方面的一些知识需要了解
注意,不要被这些理论吓到了,这是主要涉及的各项理论知识,可以边实践边学习,给大家一个理论学习的方向
从专业上来讲,其实更切合信息安全专业、网络空间安全专业
这些专业同学中,打ctf比赛的选手专业学习大概率会很好,因为会起到很好的结合效果
本人是信息安全专业,上述知识都会在课堂上涉及到,我是因为打比赛,相比提前学习了一些,然后一些实践性的课程就基本没什么难度,很清晰,很了解。
2 我怎么判断自己是不是适合打ctf比赛呢?
首先、首先、首先一定是兴趣、兴趣、兴趣!!!!!
因为ctf竞赛没有兴趣的话,很难坚持下去。
怎么判断:
- 用kali metasploit实现对windows靶机的攻击(就从网上博客找资料,按步骤来,做完了是不是有一些.......小小的成就感,如果很挣扎,不愿意做,建议可以仔细考虑一下)
- 做一些ctf题目
其次是愿意折腾!,愿不愿意为了一个目标,啃一整天甚至好几天
最后是不断总结反思的心。
有了这些前期的东西,那开学!
3 取一个帅气的名字
找4个人组个队学习
学习交流环境很重要!找志同道合的小伙伴
建议web和pwn分开,4个人,2个主攻web,2个主攻pwn
建议用qq,因为一些资料记录可以长期保存
来点方向:有哪些比赛值得我们参加
信安国赛!非常有含金量
网鼎杯网络安全大赛……
一般来说有战绩的选手,可以参加护网项目,在大学也是一笔不小的收入
4 怎么刷题学习?
学习方向
划重点!!!靶场推荐
我推荐在线靶场,因为个人靶场配置成本很高,而且容易搞崩,因为我们做的就是发现漏洞、找到漏洞、开展攻击,个人靶场相当于对自己主机进行攻击,扫个目录可能就........,然后虚拟机的话,大学生大部分的笔记本电脑性能本就不高,再开个虚拟机相当于雪上加霜.......
免费的
- nssctf https://www.ctfer.vip/rank 难度、种类划分清晰,缺点是很多没有答案
- buuctf 难度较高,很多都是大赛题目
- xctf 难度适中,但题目较少,涵盖面不全
- ctfhub 就是有各类竞赛的日历,参赛很方便(但大多数是商业竞赛,不建议新手参加,伤自尊,被广告签到题目恶心........)
- i春秋(国赛主办方靶场网站,但资源也比较有限)
- 境外网站就不推荐了......
付费的
- 强推ctfshow的web入门(5-6佰)很好的划分了各个种类去学习,很有逻辑性,有复现学习视频。
- 蚁景网安的在线靶场(会员1个月1佰左右),不用自己配置,有学习文档。(适合入门,不太适合后续深入学习)
但是不建议上来就成人民币玩家,建议可以在免费的学习一段时间,再可以有选择地,选择一个高级靶场认真学一下。
书籍资源
微信读书有很多免费书,淘宝上可以买一些便宜的电子书或者二手书。
ctf特训营(适合pwn方向的,很细)
从0到1ctfer(更像是一个工具书,有配套靶场)
白帽子讲web安全
其他的在理论基础中说了,计算机网络很重要!!
划重点!!学习习惯很重要
建议每天定一个小目标,每天我刷几道题,就是任何工作前先做,不要放在一天的后面
划重点!!!!学会整理
强推学习利用markdown整理+发博客,分享学习心得,利用博客复现靶场题目
markdown文档 https://markdown.com.cn/basic-syntax/lists.html
Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
建议使用typora+pigco图床+gitee+坚果云,相信我,计算机的学生都很擅长使用md写文档,笔记啥的
博客可以用公共的博客园/csdn,搭配主题效果,相当酷炫(信安专业绝对会用到)
有很强个人能力的,可以使用云服务器搭建wordpress个人博客+个人域名,很灵活,很有成就感。
使用博客是整理学习内容的,因为很难把所有的都记到脑子里不忘,每天抽出时间来复现靶场,归纳成立,注意一定要成体系,可以按照ctf-wiki进行成立,分门别类。
ctf-web方向归根到底就是发现漏洞,由漏洞展开提权等
所以我们更多需要做的就是积累!积累!积累!没有好办法就是积累
只有做的多了,我们才能在遇到题目的时候,特别是综合题目的时候有思路
怎么积累,积累答题姿势、攻击姿势,像sql怎么绕过防御的,php命令执行怎么绕过的等等
有多少姿势,意味着你有多少方法,在遇到问题的时候才能知道咋解决。
一定要不断地复现靶场!!!!!!!总结归纳!!!!!
当你发现我做完了一些题目,但是又遇到这些相同题目的时候,几乎没有思路,你就应该想一想总结反思了
一开始,大部分可能都做不出来,可以先尽力尝试,然后照着wp进行做,然后做完了再抽空学习。
有问题咋解决
建议使用bing搜索引擎,csdn上的解决方案也有很多
不断问,有一个很好的ctf学术交流群也是极好的。
来,开学!
首先,必备工具(属于是翻箱底的工具)
所有的网上都有资源,需要大家自己动手去找
谷歌浏览器(盗版很多,仔细些)
burpsuite+系统代理插件(建议switchomega)
hackbar
linux系统机
不建议使用vmware虚拟机,每次做个题,打开vmware,跑起来虚拟机都要2分钟
万一有个网络啥的问题,修一修改一改就10多分钟过去了,改不好,心好累,今天就到这吧........
特别是大部分同学电脑性能不够,开虚拟机cpu要完,电脑和虚拟机之间交互还不够完善,vm-tools还时常崩掉。
来,上干货,win系统建议使用wsl2,非常完备了,也有很好的文件交互性(尽管尽力封装但感觉没啥用)
云主机,尤其是虚拟机屡屡报错的同学,可以搜学生主机,从腾讯、阿里、华为云可以一次包几个月、1年的,哪个便宜用哪个,不要找很贵的!没有其他需求对性能要求不大,重装系统只需要1分钟!特别是很稳定,一般不会出现奇怪的报错,但需要有一定web基础,特别是有公网ip!很方便,webshell反弹还会用到。
信安、网空的同学也可以使用云主机来做平时的实验,很方便
不建议使用已预装特定应用的主机,建议使用原型机。
连接使用Xshell+Xftp(相当稳定!)
vscode
不建议配环境,配环境很复杂,建议搭配linux服务器使用。
优势在于轻量!接口多!打开很快,idea之类的有时打开都要几分钟
phpstudy
相比xampp,配起来很方便。