這題又是一題grep的題目,題目給了一段位址我們就點上面的shell 進到 picoCTF的shell server吧
直接 cd /problems/grep-2_2_413a577106278d0711d28a98f4f6ac28/files
到目錄底下
接著 ls 看看有什麼東西
$ ls
files0 files1 files2 files3 files4 files5 files6 files7 files8 files9
裡面有很多資料夾隨便ls
一個看看吧
$ ls files0
file0 file11 file14 file17 file2 file22 file25 file28 file4 file7
file1 file12 file15 file18 file20 file23 file26 file29 file5 file8
file10 file13 file16 file19 file21 file24 file27 file3 file6 file9
看來是要從每個目錄中這麼多檔案找到Flag,不過之前練習過的都是對一個檔案grep,這時就會用到一個參數 -r (recursive)
$ grep picoCTF files* -r
files5/file24:picoCTF{grep_r_and_you_will_find_8eb84049}
這裡可以看到Flag是藏在files5的file24
直接nc 2018shell.picoctf.com 42334
看看有什麼吧
題目說如果你需要幫忙的話可以打echo 'Help Me!'
,打完後他說有看到任何目錄嗎
這邊直接ls
就可以看到有五個目錄
我們一個一個進去看看每個目錄有什麼東西,前四個什麼都沒有直到secret跳出了一段文字
他說告訴我你找到什麼,就直接ls看看吧,他的意思大概是把intel的文件都刪掉,這裡就直接rm intel*
接著又說輸入echo 'Drop it in!'
他說他把檔案放在executables資料夾並且執行該檔案,用 cd ..
回到上一層,再進入executables資料夾,這時看到了一個叫做dontLookHere的檔案,執行他後會產生一堆16進位的數
這時他說找到密碼了但是不知道username是什麼,這時會用到一個指令叫做 whoami
可以顯示當前的帳戶名稱
這裡說將tmp資料夾中的TopSecet複製一份到passwords資料夾
cp /tmp/TopSecret ./passwords
可以實現上述內容
最後檔案複製過去後就直接到passwords資料夾 cat
就可以找到Flag啦picoCTF{CrUsHeD_It_d6f202f1}
這題是在說很多時候在執行程式前都要先配置環境變數,至於環境變數的說明題目的提示有,請自行參閱
就直接打開shell server找他藏在環境變數裡的Flag找出來吧
使用env
變數可以查看當前的環境變數
$ env | grep picoCTF
SECRET_FLAG=picoCTF{eNv1r0nM3nT_v4r14Bl3_fL4g_3758492}
這一題是要利用ssh從我的電腦連到picoctf的server,所以server會先檢查他有沒有我的公鑰,有的話就可以直接連,所以這時我們要先生成一個ssh key
使用 ssh-keygen -t rsa
來生成,接下來就一路Enter到底就好
再來要將我們的公鑰複製一份給server,cat ~/.ssh/id_rsa.pub
將裡面的內容複製下來
接下來到shell server
cd ~/.ssh
echo '剛剛複製的內容' > authorized_keys
就成功將公鑰複製到server,接著回到終端機輸入ssh <picoctf的帳號>@2018shell4.picoctf.com
就可以成功得到Flag了picoCTF{who_n33ds_p4ssw0rds_38dj21}
現在的題目很多都是常用到的工具,不只是把Flag找到而已,更要熟悉這些工具怎麼使用才是最重要的。