臺南一中電機社CTF大賽詳解
本文最後更新於 64 天前,其中的資訊可能已經有所發展或是發生改變。
⚠️ 注意 ⚠️ :本篇內容截至112學年度第二學期之進度,後續如有新增或刪除題目本頁不一定會更新

前言

如果這篇文真的是被電機社的學弟們看到,歡迎留個言,我會很高興我們當初在如此混亂的情況下所建的 CTF 和社團架構至今還為人所用。

Part.1 Linux基礎知識

1. Linux的浪漫故事四件套

現在的人看來可能莫名其妙,搞這一堆閱讀理解是在幹嘛。但這部分的立意是當初進來佰拾肆進來的時候英文實在太爛了,所以把一些帶有基礎技術又有一些資訊類單字的文章拿來強迫他們看。這部份對於各位108英語課綱教出來的孩子們應該很簡單,直接看過去即可。

2. 遠端,啟動!

第一題是要確認大家有使用ssh的能力。

這題非常非常非常基礎,希望大家在直接看詳解之前還是看一下這個網站。

順便安麗一下 Arch Wiki ,幾本上所有有關 Linux 的內容,無論冷門熱門上面都會有,遇到不會的或是忘記的請好好善用他。

照一般人的邏輯這邊卡住是因為ssh的指令埠號要加上-p XXXX,所以完整的指令應該要是:

ssh [學號]@192.168.16.38 -p 1234

3. 我是誰我在哪?

這題是希望你知道有個指令叫pwd,可以知道自己目前的位置。在 Linux 裡面文件的位置有兩種表達方式:

  • 絕對路徑:從根目錄開始寫,例如/home/user/Downloads。就像寫總統府的完整地址中華民國臺北市中正區重慶南路一段122號
  • 相對路徑:從你現在的位置開始寫,例如你在現在在/home/user,那你想要去Downloads裡就可以寫做./Downloads。就像你現在在北一女中大門,那你要表達總統府就可以寫成在北一女大門斜對面

其實這題就只要簡單的pwd就好:

49ddc34fde24:~$ pwd
/home/110332

這題的問題是他的學號的flag是窮舉出來的,不知道到了那時候你們還有沒有更新,沒有的話就去提醒一下幹部,不然就先直接抄我的去解吧。

4. 在那呆著幹嘛?走路啊

要像 Windows 的檔案總管那樣在各個路徑中移動需要會一些指令,有興趣可以看一下下表。

這題水有點深,大家不一定是不會只是有點太繞大家看不懂。首先肯定是要先用cd回到上一頁。

49ddc34fde24:~$ cd ..
49ddc34fde24:/home$ ls
110310  110332  110349  110359  210043  210112  210161  210457  210506  210559  210568  daddy   flag

輸入之後用ls看看有什麼,會看到有個叫flag的資料夾,再cd進去。

49ddc34fde24:/home$ cd flag/
49ddc34fde24:/home/flag$ ls
GCTF{vv|-       Lets_go_to_etc

那個 GCTF 開頭的資料夾很明顯就是第一段 flag ,後面Lets_go_to_etc就是叫你去/etc找第二段。下面原理都一樣,就一次跑完流程不一一停下來說明了。

49ddc34fde24:/home/flag$ cd /etc
49ddc34fde24:/etc$ ls
alpine-release   flag             hosts            modprobe.d       network          passwd-          resolv.conf      shadow-          sysctl.conf
apk              fstab            init.d           modules          nsswitch.conf    periodic         secfixes.d       shells           sysctl.d
busybox-paths.d  group            inittab          modules-load.d   opt              profile          securetty        ssh              terminfo
conf.d           group-           issue            motd             os-release       profile.d        services         ssl              udhcpc
crontabs         hostname         logrotate.d      mtab             passwd           protocols        shadow           ssl1.1           udhcpd.conf
49ddc34fde24:/etc$ cd flag/
49ddc34fde24:/etc/flag$ ls
Lets_go_to_usr_next  |AtTh3
49ddc34fde24:/etc/flag$ cd /usr/
49ddc34fde24:/usr$ ls
bin    flag   lib    local  sbin   share
49ddc34fde24:/usr$ cd flag/
49ddc34fde24:/usr/flag$ ls
FiStHis         Lets_go_to_lib
49ddc34fde24:/usr/flag$ cd /lib/
49ddc34fde24:/lib$ ls
apk                    ld-musl-x86_64.so.1    libcrypto.so.3         libz.so.1.3.1          sysctl.d
firmware               libapk.so.2.14.0       libssl.so.3            mdev
flag                   libc.musl-x86_64.so.1  libz.so.1              modules-load.d
49ddc34fde24:/lib$ cd flag/
49ddc34fde24:/lib/flag$ ls
congrats  r0Ut3}

層層解到第四層之後就到底了,最後組出來會是GCTF{vv|-|AtTh3FiStHisr0Ut3}

5. 什麼東西?

這題想告訴你們圖片副檔名其實是可以手動更改的,要找到真正的檔案格式必須另尋他法。

怕圖片不見,順便留一個存檔在這,可以直接載下來。

要找到檔案的格式可以直接使用file指令,Arch Wiki 同樣有說明。

所謂檔案格式就是常用的jpg, png之類的,不用聽到新名詞就害怕。

但這邊不需要多帶什麼東西,直接用即可。

49ddc34fde24:~$ cd challenge_8
49ddc34fde24:~/challenge_8$ file willie.png
willie.png: RIFF (little-endian) data, Web/P image

如題旨,答案其實就是GCTF{RIFF}(我們窮舉了很多可能,上面跟格式相關的文字只要斷句有對基本上都會對)

6. 我!叫你!執行!

在 Linux 中執行檔案就類似於 Windows 裡你點開 .exe 那個動作,不同的是你要告訴電腦你要執行的檔案在哪,故以本題為例,要執行 executable 可以使用絕對路徑相對路徑來寫,這裡以相對路徑為例:

1e1f1041d948:~/challenge_9$ ./executable
-bash: ./executable: Permission denied

然後發現跑了個 Permission Denied ,這是因為權限被鎖住的關係。接下來下面就來細講 Linux 中的權限是什麼概念。

首先修改權限通常會用 chown chmod 兩種方式,可以用一張圖來解釋兩者的差別。

  • chown 是授予權限給用戶本身
  • chmod 是告訴看到用戶時可以開門

這裡先只用 chmod

上面有提到過 ls 這個指令,如果我們用 ls -l 可以看到:

1e1f1041d948:~/challenge_9$ ls -l
total 1852
-rwxr-xr-x    1 110332   110332     1893921 Nov 19 05:10 executable

前面的 -rwxr-xr-x 便是權限的表示法

0123456789
drwxrwxrwx
目錄文件主讀取權限主寫入權限主執行權限組讀取權限組寫入權限組執行權限其他讀取權限其他寫入權限其他執行權限

0 位代表著文件的類型,跟我們要的權限沒啥關係。第 1~3 位代表文件的所有者的權限、第 4~6 位代表所有人群組的權限、第 7~9 位代表其他所有用戶的權限。

1、4、7 位代表讀取權限,如果寫著 r 則有權限,如果寫 - 則沒有權限。剩下的位數以此類推。

好了講完基礎概念可以開始講 chmod 了(

一般我們使用數字模式來使用,

評論

  1. 甲假
    5 個月前
    2024-8-22 16:26:53
    好甲喔
    • 博主
      甲假
      5 個月前
      2024-8-22 16:27:55

      操你媽

  2. 甲假
    5 個月前
    2024-8-22 16:28:00

    114514

    • 博主
      甲假
      5 個月前
      2024-8-22 17:03:13

      操你媽(╯‵□′)╯︵┴─┴

發怖評論 編輯評論


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇