【日常】我入門 CTF 了?

前言

不知從何時開始,生活周遭充斥著 3C 產品,並且無時無刻在透過網際網路,我們可以透過它向遠在他鄉的人發送思念的訊息。但是不知道你有沒有想過,資訊領域處處都是漏洞。

正因為我是這麼想的,所以在高中玩競技程式的我,也曾想過接觸資安領域,可惜當時無知的我無從下手,也不願意提問並尋找學習方式。

如今,身為大學生的我,必須來一探究竟,資訊領域的龐大。

契機

在大一時,我參與了我們學校的駭客社,或許很多人會覺得無聊,不過我常常一不小心就掉進學習的漩渦。

由於高中畢業後,我向同學借了主機架我的 Discord 機器人,好不好玩先不說,但我接觸了一點點 Linux 指令,所以其實我是有使用 Linux 指令底子在的。

入社迎新前一周,我就自己先創了 picoCTF [1] 帳號玩玩看,後來就有點回不去了,每解一題就會覺得:幹!超酷!

於是,就不斷解下去,日後應該也會持續撰寫此類文章。

入門 picoCTF

剛辦帳號的我,就躍躍欲試去玩題目,但…我該怎麼下手?

我點開了 Playlists 翻了下,看到了 The Beginner’s Guide to the picoGym 就直接點進去解題,玩完後,我仍對於這部分抱有興趣學習,並開始用 HackMD 寫屬於自己的筆記(像是:Linux 指令、解題紀錄、密碼學等等)

過程中,我是完全一知半解,不過就是因為一知半解,所以我才更有動力去想要了解更多。


舉個例子:

有個 Web 類別的中級題目,用到了 PHP Web Shell,他需要利用 PNG 開頭的 PHP Web Shell 去偽裝成 PNG 檔,上傳內容是 PHP 的當案。來找到這題需要的 Flag

而 PHP Web Shell 是一個常見的攻擊方式,藉由惡意代碼,強制獲得控制權限。雖然看起來很強,但現在許多能上傳文件的網站已經提防這點。

這個東西,是我到解題當下才去了解的,不過像這樣做中學、學中做的模式,對我來說是好的,因為這樣印象最深刻,我也能夠了解它是怎麼運作的。

在密碼學的部分,從迎新中學到了 Base64,自己玩的時候又學到了 Caesar Ciphers,雖然僅是初階的密碼學,但這些也很好玩(就是拿個一個字串去亂解密)。

學到的 Linux 指令就太多了不過有幾個很實用:exiftoolcatvimgrepbvi 等等,還有個有趣的 git 指令是 blame,用來抓亂改檔案的戰犯。


  1. 這是一個解題網站,在競程中,類似於 ZeroJudge 或 LeetCode。 ↩︎