iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
Security

一起資安入門 -- picoCTF 探索與解題系列 第 6

[2021鐵人賽 Day06] General Skills 03

  • 分享至 

  • xImage
  •  
  • 引言
    昨天學到的:

    命令 簡介
    命令 --help 查看命令使用說明

    今天的題目正好與 --help 有關~

  • General Skills / Wave a flag
    https://ithelp.ithome.com.tw/upload/images/20210919/20111429OFrhVeEh4w.png
    題目給了一個檔案,而且一開始就提示你:「會不會調用執行檔或工具的 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 。


上一篇
[2021鐵人賽 Day05] General Skills 02
下一篇
[2021鐵人賽 Day07] General Skills 04
系列文
一起資安入門 -- picoCTF 探索與解題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
leokqq27
iT邦新手 5 級 ‧ 2022-02-14 15:13:37

今天學到CTF,你的文章很仔細,給我很大的幫助,謝謝你

很高興對你有幫助~請多多指教

我要留言

立即登入留言