引言
昨天學到的:
命令 | 簡介 |
---|---|
命令 --help | 查看命令使用說明 |
今天的題目正好與 --help
有關~
General Skills / Wave a flag
題目給了一個檔案,而且一開始就提示你:「會不會調用執行檔或工具的 help 標誌」,
其實就是我昨天提到的 --help
或是 -h
,總之我們先用 wget 下載下來看看:
連結名 | 下載的檔案 |
---|---|
This program | warm |
執行看看:
$ ./warm
bash: ./warm: Permission denied
咦?不能執行,它說權限不足?
原來網路上載下來的執行檔是不能直接執行的,必須手動替它加上執行權限才行:
$ chmod +x ./warm
這樣會幫你把 warm 加上執行權限,你可以執行它了。
這是一種保護機制,避免來路不明的執行檔胡亂肆虐。
chmod 是用來改變使用者對檔案存取權限的命令,即 change mode 之意,可以藉由
+
、-
增或減對檔案的權限,如這題的+x
代表增加執行權限 (+ execute) ,這邊只介紹它的一小部份功能, chmod 還有其他更多模式的切換功能,往後遇到再慢慢介紹,或是你可以看看維基百科的介紹:chmod
這邊順便補充一下,在打命令時,檔案前面加上
./
是什麼意思?
其實應該分開來看,/
是用來切分目錄的,
如aaa/bcd.txt
代表 aaa 目錄下的 bcd.txt 檔案,
而.
代表「目前目錄」,所以./
代表「目前目錄下的...」,
如./warm
代表「目前目錄下的 warm 檔案」。
值得注意的是,若你想要執行目前目錄的某執行檔,必須寫./warm
,
不能只寫warm
,這樣會被 shell 誤會warm
是一個命令。再補充一個,
..
代表前一個目錄,../
代表「前一個目錄下的...」。再...再補充一個,最後一個了 (真的) ,
cd -
代表「進入歷史紀錄的上個目錄」,
例如你前一次進入/apple/pie/
目錄,現在在banana/juice/
目錄,
則cd -
會進入/apple/pie/
目錄裡面,
如果再cd -
一次則還是回到/banana/juice/
中 (總之就是「上一頁」功能)。
OK, 我們直接執行 warm
:
$ ./warm
Hello user! Pass me a -h to learn what I can do!
很明顯必須用 -h
查詢 warm
的說明:
$ ./warm -h
Oh, help? I actually don't do much, but I do have this flag here: picoCTF{b1scu1ts_4nd_gr4vy_616f7182}
成功取得 flag 。