Skip to main content

技能競賽分區賽之網路安全

· 8 min read

這邊來分享一下這次比網路安全這個職類的心得,當然這裡只是分區賽而已,全國賽要等到暑假才知道。這次的分區賽前前後後比了五個小時,像安全強化跟數位鑑識之類的放在早上的三個小時,下午就是 CTF 兩小時這樣。

在去比賽之前我專門練 PWN 跟 Reverse,還有基本的數位鑑識。我們學校是有找單位幫我們培訓,但是那個培訓很混,去那邊基本上就是給你一個可以用筆電的空間,而且裡面訊號還很差,所以我就有時候去看一下而已,因為要刷題我在家刷就好了,不然我還要特地坐車去高雄,屬實沒料。

我自己最後是拿到了南區賽第四名,有晉級到全國賽。下面是我回憶的題目,主要是我負責的題目我記得比較清楚。

早上

這裡考了三個小時,我本來以為會很累,結果反而是下午比較爆。

數位鑑識

有三題,滿分 40 分,我自己是全部都有寫,最後拿到幾分沒有公開,所以我也不知道。這部分我覺得應該算好拿分數的地方。

第一大題是給你一個 Windows 的 Memory dump,電腦裡面被安裝了木馬,然後問你一些問題,像是木馬的路徑之類的。不過這部分我後來去問了一下其他組,我的解法應該是不對的,這部分我應該有寫錯幾題。

第二大題是一題 Crypto 的題目,真的沒有想到,在考試之前我還特別去問這個考試會不會有密碼學的題目,他們都說沒有。這題他給了五個密文,然後還有一個小遊戲,就是有點反應遊戲,過了一關之後就會解開密文,然後會順便給你 key。

這題主要的考點是 key 固定加一個 offset,然後如果把明文跟密文做 XOR 就會發現到 key 本人就出現了。解法就是先解第一關跟第二關拿到 offset,之後就開了。

老實說這題不難,但是要在沒有 IDE 的時候馬上寫 Script 應該對很多人來說是有難度的,還好我之前都有記語法。這題還有一個很麻煩的點是會在如果照著這樣解,最後會發現到有些字會爛掉,原因是 offset 還是會動的,要觀察出來才有辦法全解。

這題前前後後花了我一個小時才解開。

第三大題是給你一個 SQLite 的 database,這題的解法就是直接套工具看一看,語法輸一輸就出來了,解開非常簡單。

Windows Server 設定

這部分我是給隊友,我隊友只有解出三題,不確定難度。

Linux Server 設定

這部分我解的也沒有說到很好,主要是因為我 apache2 不熟,所以有些題目就沒有設定成功,我後來去問那些應該是很簡單的題目,有點可惜,之後要練一下這個部分。

還有一些很基本的題目,像是密碼設定的 pam 模組是哪一個這種問題,我應該有寫對吧。

下午

下午就是 CTF 局,也是我主要拿分數的地方。

PWN

PWN 有兩題,我只有拿到了一題而已,另一題我想了超級久也沒有想出來,事後我有去問一下成大的隊伍,解法我非常的驚訝。

第一題就是簡單的蓋變數,小心不要蓋太爽把 canary 也一起蓋掉就好了。

第二題是給一個 function pointer,可以對裡面的 address 的一個 bit 做 flip,我是真的沒有想到怎麼解,而且這題還是帶 canary 的。

解法是去蓋 GOT 表,我回家自己實驗真的可以,而且最好笑的是前一天我才在練習改 GOT 表而已,我考試的時候也有實驗,但是地址填錯了,屬實沒料。

Reverse

這裡我解了兩題,我很驚訝的是有 pwndbg,我本來以為沒有所以我之前練習還特地刪掉,只用 gdb 練,有這個之後我順手非常多。

第一題直接 strings 就可以看到了,不多說。

第二題程式看起來被處理過,完全沒有辦法看出什麼東西,所以我直接 gdb 下去,一開始 flag 會有一半在 stack,之後要再跳過一個 if 就可以拿到另一半的 flag。

跳過的方法很多,這部分自己查。

第三題給了一個 pcap 還有伺服器程式,pcap 用 TCP 傳了一串密文,我沒有想到怎麼解開,我也沒有問到解法。

Web

這部分我有幫我隊友,但是題目全部是什麼我不知道,我記得有一題要寫 script,我隊友居然寫不出來 :(。

還有一題要用 hashcat,但是他也忘了語法,還好這工具我非常熟,救回來。

Misc

給一張圖片,直接 strings 會發現到有一個 flag.txt,這題我們剛要解時間就到了。

我去問了一下別組的,要用 binwalk 拿出那個 zip 檔,只是拿出來之後是上鎖的,所以他們也沒有解開,超沒料。

小結

這次可以撈到第四名我覺得可以了,我朋友是說 PWN 跟 Reverse 有拉開差距,那我考前的發瘋應該有值得啦!

之後就要去台北五日遊,感覺又要再ㄍㄧㄥ一段時間了,我應該就是專心練到 PWN 跟 Reverse 啦,這兩個我自己算是最有把握的。

進擊下半場!