最近有很多新手小白私信我:如何学习CTF?新手小白应该怎么入门CTF?想打CTF,但是没有思路怎么办?
昨天下班之后,花了几个小时,整理了一下CTF学习的思路与方法,分享给大家,如果觉得有帮助的小伙伴,记得点赞收藏关注!
CTF(网络安全竞赛),我推荐给CTFer们的一本书。-----《从0到1——CTFer成长之路》。由NU1L战队成员编写,内容涵盖了CTF的常考领域,原理,利用,还有题目分析,可以说是比较不错的CTF入门书籍。
- CTF如何学习?
- 打CTF有什么用
CTF本身有几个常见的领域 MISC WEB 逆向 密码学 PWN
首先,你本身是想做一个单方向的选手还是一个五边形战士呢?我身边大部分是选择走web路线(可能因为身边做web的比较多),这边就先以web安全为基础,给你一个学习路线,建议。
首先,先把web安全的学习路线给你安利一下,也是我之前自己在看的流程
web安全知识学习(理论期)
web基础/渗透环境搭建/常用工具
1.web方面的基础知识,比如你去学习HTML等相关前端语言。另外端口也可以学习一下3306,3389等端口的利用。(具体可以参考漏洞银行学习路线内容)
2.渗透环境的搭建也是必不可少的,最快捷的方法就是装一个kalilinux的虚拟机,对于小白来说最好不过了,不需要配置过多的环境和工具,系统全部自带,对于web安全研究人员来说kali是一个不错的选择(安装教程可以私信我获取)
3.常用工具这边,比如注入工具学习sqlmap,以及burp,MSF,nmap,beef,AWVS,wk,等工具,来辅助完成渗透以及方便渗透人员。(工具需要配置环境,例如sqlmap需要python环境才能够使用,小白配置起来比较鸡肋,需要教程可以私信我)
owasp top 10漏洞
- 注入
- 失效身份验证和会话管理
- 敏感信息泄露
- XML外部实体注入攻击(XXE)
- 存取控制中断
- 安全性错误配置
- 跨站脚本攻击(XSS)
- 不安全的反序列化
- 使用具有已知漏洞的组件
- 日志记录和监控不足
这些可以说是基础了,作为一名web安全研究人员不能不会的技术,在精通owasp top 10漏洞原理,挖掘,利用,修复方法后(建议每个漏洞都确保拥有实战能力,即能够在靶场上复现,吃透以后再进行下一步的学习)就可以尝试去实战一些中小型网站了。
漏洞挖掘(初期实战)
Google hacker
可能大部分同学还没有听说过,学过,或者只是粗略的了解了一下谷歌语法,认为它的功能一般,没有什么大用处,然后就放到一边去了,但其实不是,其实大部分情况下的漏洞还是得靠谷歌语法的。很多同学可能是看了一些SRC大佬的回答以及文章之类的,就直接带上电脑,在网上找一些大集团,大学,政府等平台去进行渗透测试,这种行为无疑是错误的
且不说你没有经验,一上来就搞这种大平台,对于一个新手来说,能有多大收获呢?(运气爆表当我没说)。
那些文章和SRC大佬的水平和方法并不一定适用于你。对于新手,更多还是用谷歌语法去找漏洞,比如找逻辑漏洞(短信轰炸)就intitle:注册 inurl:http://edu.cn 这个语法如果看不懂建议回炉重造,这是最基本的,查找教育机构逻辑漏洞的一个简单谷歌语法,又或者你要挖注入,那就inurl:asp?id=
这样去挖洞的效率绝对比你在网上瞎找要好,谷歌语法可以帮助我们筛选网站,我们可以根据不同漏洞URL特征,网站内容,标题等,利用谷歌语法来查找相关网站去进行渗透测试,这个对于小白挖洞来说非常重要。
网站信息采集
- 其实挖不到漏洞,除了思路问题,技术问题,被大佬挖完等问题外,还有一点,信息采集不到位,有时信息收集可能微不足道,没有什么作用,但有时他却能决定本次渗透能否成功,所以一定要事先做好信息采集的工作,像whois,端口,目录,子域名,邮箱枚举等手段。
- 那么比较不错的信息采集过程用到的工具有哪些?
以上是我推荐给小白们的web安全学习路线,这边就来讲一下,打CTF有什么用处?
- 很多同学想要去打CTF,为了什么?
- 想要靠比赛来赚取更多的学分
- 想要在比赛中提升个人技术水平
- 想要结识更多大佬,开拓眼界,就业有更多选择等
打CTF,如果是一个刚刚开始学习或者接触不久的小白来说,去一些比较有意思的比赛或者队伍当中,就算做不出几道题,队伍中没有什么存在感。但仍然可以学到很多之前没有接触过的操作,姿势,以及各种奇怪的技巧。
但有一点也请各位同学注意,目前CTF中的题目和环境,很多都和现实(实战)脱轨,所以说打CTF可以学到技术,但可能对实战的帮助不是很大.
- 但还是可以锻炼自己的渗透思路,手法,锻炼自己的实战能力。至少在基本功方面,和其他人相比会有显著的提升。
- 且目前来看,很多CTF都是有各大公司投资,以及很多安全企业的招聘上都会有“CTF获奖者优先”之类的字眼,至少对之后的就业是有帮助的。并且很多高校也是可以通过CTF比赛来赚取学分,对新生来说,打CTF还是有不少好处的
- 但归根结底,CTF还是类似于黑客之间的,派对?拥有一定官方背景的比赛国内还不是很多,被各大公司接受承认的名次和奖项也比较少
不过,最终还是看自己了。只要感觉在比赛中学到了技术,感受到了快乐那就坚持下去**。但思维不要过度的CTF化**,这可能对你以后的实际项目有一定的影响。在实战过程中,往往与CTF有一定差距,CTF考察思路,实战更多是考察经验,总是刷CTF的题目可能导致CTF化,CTFer们要定期防化
毕竟大家不可能一直打CTF。打比赛是为了学到知识,刷新自己的思路以及自己的技术水平,更多的还是看实战。以及CTF打的不错了可以跳槽去SRC平台看看。
还有就是如果想要成为一名优秀的CTFer,可以选择加入CTF战队,加入一个战队不仅可以参加更多竞赛,也有了更多的学习空间和交流机会,毕竟不是每个CTFer都有天赋打CTF,是个全栈选手,一般都是由一个团队,不同的人负责不同的领域,来完成一场比赛。
最后一点,什么情况下不推荐打CTF?
- 过度沉浸于CTF,如解题技巧,出题模式,题目套路等等
这一点,首先是对你之后的实际渗透测试工作和项目会带来影响,毕竟你不可能打一辈子的CTF,而CTF和实战还是有区别,过度沉浸于CTF的模式当中会让你在实战中却无从下手
- 希望速成,短时间内成为优秀的CTFer
这种就是太浮躁了,很难坚持和认真学下去,如果是以这种目的和心态来学习的话我个人不太推荐,还是做点其他的比较好?
最后,我这里也整理了一份往年CTF相关文档笔记资料,如果有小伙伴需要的话,可以微信扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享