啥是CTF?新手如何入門CTF?

CTF是啥
CTF 是 Capture The Flag 的簡稱,中文咱們叫 奪旗賽 ,其本意是西方的一種傳統運動。在比賽上兩軍會互相爭奪旗幟,當有一方的旗幟已被敵軍奪取,就代表了那一方的戰敗。在資訊保安領域的 CTF 是說,通過各種 攻擊手法 ,獲取伺服器後尋找指定的 欄位 ,或者檔案中某一個固定格式的欄位,這個欄位叫做 flag ,其形式一般為 flag{xxxxxxxx},提交到裁判機就可以得分。
資訊保安的 CTF 的歷史可以說很長了,最早起源於 96 年的 DEFCON 全球黑客大會(美國最大的網路安全會議,今年 5 月在北京舉行哦,有興趣可以去聽聽,特別好玩)。
為啥要CTF
入門滲透,那肯定得各種練手對不對?但因為由於 「網路安全法」的頒佈,隨意掃描他人網站,或非授權滲透測試都有一定的風險。最近也有個新聞:

說實話,這小夥只是在掃描,攻擊都被防火牆攔下了,啥都沒弄到,結果還是一樣被判刑,可謂是偷雞不成蝕把米了……

所以記住千萬 不要 亂掃國內的網站,尤其是教育、政府類網站。但初入門的同學學習滲透測試沒有一個對應的環境也是不行的,而常見的靶機對於小白來說太過複雜,很容易不知如何下手。
這個時候 CTF 就非常適合了,CTF 一般是一個題目有一個或幾個知識點相互糅合,相對來說目標性比較強。如果想要體會到安全的成就感和趣味性,促進自己邊練邊學,CTF 就是一個很好的選擇。
CTF 的型別
CTF 題目型別一般分為 Web 滲透、RE 逆向、Misc 雜項、PWN 二進位制漏洞利用、Crypto 密碼破譯,有志於滲透測試的同學一開始建議從 Web 滲透的題目開始,輔以 Misc 雜項和 Crypto 密碼學。
CTF 主要分為兩種模式,一是 解題模式。 對於 Web 安全來說,會要求你入侵網站或者靶機,攻擊成功後系統會顯示flag或者在某個目錄 檔案 資料庫尋找 Flag,提交到答題系統得分。逆向工程題目一般形式是破解註冊機、動態除錯、dump 記憶體等等。這些題目可以百度或谷歌別人的解題報告( 關鍵字:CTF writeup)來認識一下。
這種模式的缺點是類似於“應試教育”,當前的趨勢是注重出題難、出題偏,沒有考慮實際,就跟奧數似的。而且這種模式只有攻擊,卻沒有防守,而在企業中工作更多的還是考慮如何防護的問題,這個時候 AWD 攻防賽模式就應運而生了。

二是 攻防賽 ,也叫 AWD(Attack With Defense,攻防兼備)模式。你需要在一場比賽裡要扮演攻擊方和防守方,攻者得分,失守者會被扣分。也就是說,攻擊別人的靶機可以獲取 Flag 分數時,別人會被扣分,同時你也要保護自己的主機不被別人得分,以防扣分。
這種模式非常激烈,準備要非常充分,手上要有充足的防守方案和 EXP 攻擊指令碼。我第一次參加這種比賽的時候就被人打慘了QWQ,不過後面參賽越多,積累的經驗就會越多。所以說,這種比賽不用慌,多打多學多積累就好了。
CTF 裡面也有一血之說,誰第一個交 Flag 能獲得分數加成,所以說手快也很重要。不過一般來說是沒有別的大佬手快的。

至於每個型別有什麼題目,你可以去參加一個 CTF 賽事,打了一次之後你就會有所瞭解了。
CTF 和現實滲透的對比
現實的滲透測試會有非常完整的流程,從資訊收集、漏洞探測開始,再逐項攻擊,很多時候會一無所獲。相比之下,CTF 的目標會比較 明確 ,中等難度以下的題目一般都會在題目描述中提示漏洞的發生處,沒有提示的話檢測點也不會很多,一個個篩查就可以了。
其次,有很多 CTF 題目會有點脫離現實滲透,套路、腦洞比較多,有的知識點並不實用……怎麼說呢?
有的時候出題人為了出點新題會把題目設定得腦洞要特別大才能做出來,Misc 安全雜項更是這種題的重災區。做這種題其實對現實滲透沒啥幫助,比如說這道密碼題,第一次見的時候頭大得一筆,各位看官先猜猜看是啥:

做多了 CTF 的同學應該知道,這是「與佛論禪」密碼加密,也不知道是誰想出來的……

類似這種摸不著頭腦、要用特別奇怪的姿勢或套路做題的題目也屢見不鮮。其實這也一定程度偏離了 CTF 的初衷,我們是要提高自己的安全 姿勢水平 ,而不是大開腦洞。
因此較為簡單、腦洞略大的 CTF 題僅作擴充知識面就好了。話雖如此,現在 CTF 大賽都已經往 實戰 的方向走了,高水準的 CTF 題目很多都會模擬真實的網站,讓你更加有真實滲透的代入感,滲透手法也更加貼近實戰。國內比較良心的 CTF 有 DDCTF、安恆杯月賽 CTF 等等。
關於 CTF 賽事的資訊可以關注 XCTF 社群或 CTFtime 整理的賽事連結,詳請點 閱讀原文 。雖然非常可能在比賽裡打不過各位大佬,但是劃劃水,學習學習知識也是非常不錯滴。

總結
我搜集了一些入門比較可以的 CTF 靶場,想了想,把集合文章放到自己廢棄已久的部落格上,以後會在部落格更新技術文章,這裡依然不講啥技術,說點兒硬硬的經驗乾貨就好了。靶場集合點擊連結到瀏覽器檢視:
新手入門的話,在靶場慢慢刷題,對於不會的題目直接百度或者谷歌,都會有很多解題報告,遇到不會的知識點也要善於使用搜索引擎。最好的方法還是加入一個 CTF 小組,大家互相幫助,提高得會更加快。有什麼方面需要我說得更加詳細的,歡迎留言或者發訊息。
最近事情比較多,有點突發狀況,文章難產了好久……對各位說聲不好意思。歡迎關注我的公眾號 NeverSec ,獲取最新的文章更新。

清明小長假歸來,新的一週,繼續開幹!

