CTFlearn – Wikipedia

題目:https://ctflearn.com/challenge/168

提示是 Wikipedia 和一組 IP 地址,原本猜測是訪問該 IP 地址取得進一步資訊,但測試後並無法訪問,而 Wikipedia 每次的編輯紀錄都會留下 IP 地址,因此朝這個方向嘗試,搜尋後即找到了對應 IP 地址的編輯紀錄,flag 也在該次編輯變更中。

CTFlearn – Where Can My Robot Go?

題目:https://ctflearn.com/challenge/107

Where do robots find what pages are on a website?

看到此提示想到是網站的 sitemap,通常 sitemap 會列出網站可以訪問的所有網址清單,比如本網站的 sitemap,但經訪問 https://ctflearn.com/sitemap.xml 後,這是一個不存在的網址,因此這方向是錯的。

另一個可以告知爬蟲的是 robots.txt,訪問 https://ctflearn.com/robots.txt 後看到有一個 Disallow 的頁面,也正好符合另一個提示:

What does disallow tell a robot?

訪問 robots.txt 裡面 disallow 的頁面後即可拿到本題的 flag。

CTFlearn – Base 2 2 the 6

題目:https://ctflearn.com/challenge/192

本題題目中有提到是編碼,而再根據標題,原先猜測是 base62 的編碼,測試後無法正確解碼,因此改成 base64,就能順利得到本題的 flag 。

Base{NM} 的編碼主要用途是將二進位形式的資料轉換成可顯字元的文字,以用於傳輸等用途,可以參考維基百科的相關介紹:Base64Base58

CTFlearn – Taking LS

題目:https://ctflearn.com/challenge/103

檔案:

本題是一個 zip 壓縮檔,如果使用的是 Windows 系統,解壓縮後會看到一個 . 開頭的資料夾(.ThePassword),但如果是 Unix 系統,比如 macOS,解壓縮後透過 Finder 查看則預設不會看到此資料夾,因為開頭為 . 代表是隱藏的檔案或資料夾代,所以預設不顯示,如果是在 command line 透過 ls 來查看,則需要加上 -a 參數。

當知道怎麼查看隱藏的資料夾或檔案後,就可以在解壓縮的資料夾裡面找到 PDF 的密碼,進而找到本題的 flag 。

CTFlearn – Forensics 101

題目:https://ctflearn.com/challenge/96

本題只提供一個圖片檔,那麼 flag 肯定在此圖片中,第一個想到可能藏資訊的地方是 EXIF,但並沒有看似 flag 的資訊。

從 EXIF 沒找到 flag,下一步猜測可能是直接藏在 binary 中,因此透過 hex dump 等工具來直接查看檔案的 hex 值。

Bingo,找到 flag 了。

除了上述方式,還有可能透過 invisible watermark 來藏文字,但這就會因實作方式限制只有特定工具可以反解回來,比如:https://github.com/ShieldMnt/invisible-watermark

CTFlearn – Basic Injection

題目:https://ctflearn.com/challenge/88

SELECT * FROM webfour.webfour where name = '$input'

此 SQL 透過限定 name 來查詢資料,比如當 $inputAlice Bob 時,就會顯示 nameAlice Bob 的資料,因此可以猜測當 name 正確時,就能拿到本題的 flag。

因為使用者輸入的 $input 是以字串方式直接包含在 SQL 中,因此 $input 的值會成為最終執行 SQL 的一部分,此時就能透過特定 $input 來執行想要的 SQL。

在不知道正確的 name 前,讓 SQL 回傳所有資料同樣能達到目標,因此可以試著擴展 where 的條件,比如當 $input' OR '' = ' 時,執行的 SQL 會是 SELECT * FROM webfour.webfour where name = '' OR '' = ''where'' = '' 對所有欄位都是 true,因此能拿到所有資料,也就能拿到本題的 flag。