samiux.github.io

CyberSecurity Ninjas 网络空间安全忍者

View on GitHub
Home Projects Articles Apophthegm About

夺旗赛 (CTF) 入门 (二)

上回谈了一些有关夺旗赛 (CTF) 基本技术知识要求和我对夺旗赛的个人观点后。今回我想讨论一下如何获得有关基本技术知识要求和如何丰富解题的思路。

在未讨论以上问题前,我想谈一下如何入门?有很多人 (包括菜鸟) 都对我说,多参加比赛、多看别人的解题 (Writeups),你就会学到很多了。嗯!这不是拔苗助长吗?这正如训练不足的战士上战场战斗,这与自杀无疑?这必定是浪费时间、资源,并且事倍功半吧!如果你根本未有相关基础知识,那些解题 (Writeups) 你看得懂吗?了解吗?所以欲速则不达,要按步就班,循序渐进。

我个人认为首先选择其中一个类型学习,深入了解,包括它的相关知识,例如「利用」(PWN) 类型,你首先需要学习汇编语言、C 语言、Python 语言,其后就是后门编写、调试器 (GDB,Debugger) 的使用等。当你有了这些基础知识后,你就需要学习「利用开发」(Exploit Development)。当你可以掌握以上技术后,你就可以开始参加比赛,阅读别人的解题 (Writeups) 了。我觉得这才是正确的方向来学习和参与夺旗赛。

至于如何丰富思路,举例说「利用」类型,在夺旗赛中几乎所有的库 (Library,Libc) 都是特制的,有很多现实环境中可以使用的功能都被阉割了,你只能用一种方法去完成解题,所以你必需要学习所有「利用开发」的方法、技巧、技术等以丰富你的思路。又如果你对「利用开发」越了解、越清楚,你的解题思路就越清晰,这都需要玩家对该项目的基础知识的了解要求相当高。

当你知道越多,你会发觉其实你知道的就越少!

Samiux
OSCE OSCP OSWP
二零二一年四月廿五日,中国香港

相关:

Home Projects Articles Apophthegm About