从2019年10月开始接触CTF,学习了sql注入、文件包含等web知识点,但都是只知道知识点却实用不上,后来在刷CTF题才发现知识点的使用方法,知道在哪里使用,哪里容易出漏洞,可是在挖src漏洞中还是很迷漫,学了快一年还是没挖过一条src漏洞。这一系列是把自己学习的CTF的过程详细写出来,方便大家学习时可以参考。
中文一般译作夺旗赛(对大部分新手也可以叫签到赛),在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式
CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式
一般大型比赛大都是i春秋承办的,以小组的形式比赛,分预选赛和总决赛。
如:一道签到题,开始定的分为500,当有队伍提交正确的flag,那么分数就会下降,下降到470/450这样的,人数越多,分数下降幅度越大。而一血二血三血获得分数会高于后续答题正确的
题目一般为6大类:
-近来多个CTF比赛均出现区块链题目,区块链应用越来越成为热门应用,在未来区块链会成为一个重点。因为没有接触过,这里不详细讲。
入门这一块是我们这些新手的一道大大的门槛,很多人都是不知道怎么入门。
一般分为两个方向
A 方向:PWN+Reverse+Crypto 随机搭配
B 方向:Web+Misc 组合
Misc 所有人都可以做
入门知识:
都要学的内容:Windows 基础、Linux 基础、计算机组成原理、操作系统原理、网络协议分析
A 方向:IDA 工具使用(fs 插件)、逆向工程、密码学、缓冲区溢出等
B 方向:Web 安全、网络安全、内网渗透、数据库安全等前10的安全漏洞
刷题非常重要,很多人在其他ctf入门教程中都可以看到刷题是第一步,也是进阶的重要一步,所以刷题非常重要,可是刷题也是需要有技巧的。
打开题目发现一堆笑脸疯狂向你怼来,而且速度越来越快,那么这一题怎么做呢?
这一题考察的是信息收集。在Chrome(谷歌浏览器)点击f12,就可以打开控制台,可以看见其中有一条
这一句是什么意思,就是把答案告诉你了,你可以把KEY{Web-2-bugKssNNikls9100}
提交到输入框就可以获得分数了。
总结
提交完flag后要做什么呢?这时你就要看这一题考察的是什么?控制台,那么控制台又是什么呢?要是知道就做下一题,如果不知道那么我就谷歌(什么是网页控制台),也可以百度,然后找到一篇知乎的回答Chrome 按下F12之后出现的功能是做什么用的?
在记住后看这一知识点难不难,自己能不能掌握,如果怕忘记,那你就记笔记,可以用印象笔记、有道云笔记,推荐使用印象笔记,因为它有多级分层,也没必要买会员,它送的那点容量只要不放视频或则图片不要放太多,一个月是用不到30m的。
再来一题了解一下
打开题目可以看见是个加法,18+91=109,可是我却只能输入一个1,这是为什么呢?
打开控制台看了一下,发现一个很特殊属性maxlength,那么我就谷歌一下maxlength是什么东西。
查询结果发现,maxlength是一个input元素中的用来限制字符数的,那我们就尅改一下,把他改成3、4之类的数值,只要能容纳我的答案就行了。输入后就可以获得flag了。
总结
这一题考察的是HTML中input元素的maxlength属性,这时你就可以去把HTML学习一下了,可以试着怎么写网站,哪怕是最普通的也可以,学完以后做到关于HTML相关知识点的时候你就会很快找到哪里有问题。
选择一场已经存在Writeup的比赛或者参加一场最新的CTF比赛。
总结解题过程,最好能写一写博客之类的。
极力推荐bugku,其他的后面慢慢来,先把bugku做好,然后在做攻防世界,你就会跨入进阶的门槛了。
不要先去下载别人推荐的工具,反正你是不会去学的,一定要在解题的过程中寻找,那样你回加深印象,也能直接总结一套经验出来。
很多人会纠结到底要不要深入编程。不要太深入,差不多就可以了,对照文档就可以写出程序就差不多了且能看得懂就好了,因为每个语言都是学不完的,一直在更新,如果过分专注于一个语言,安全知识就挺容易漏下的。或则是针对一些热门的编程进行深入,比如PHP、python、java之类的,其中PHP可以说是必学项目,如果可以的话,把这门语言学透,那么代码审计一点压力都没有。
上面都是个人想法,怎么选都要靠自己决定,要不要深入、深入哪一门都是问题,一定要考虑清楚再下手,别等下学了一半就改变方向,这是学习的大忌,因为你学其它的也会这样,除非是你发现这个不是很适合你的发展。
整理了一下题型,因为篇幅有限,有需要的可以评论区评论1,或者关注后自取哦~
刷题刷题刷题最重要的是刷题,,不会就看别人的Writeup,不要怕做不出,刷题一开始是很无聊的,但这是学习的过程,如果不做就永远不会。