列車

某種意義上來說,我們便是這兩趟並行的列車。時而同步,時而超越;時而別離,又時而團聚。但在某個時刻,我們終會踏上不同的旅途,各自遠去。

也只有到了那個時候,我們才幡然醒悟,這一別,便是雲海相隔、關山迢遞……

此刻我們縱然萬般無奈,有萬種情緒,但行途兩隔,最終也只能無可奈何,讓這緣分之花落去。如果這樣,那不如各自依靠在車窗前擺擺手,把思緒埋在心底,用微笑面對別離。

影片及引言取自:https://www.bilibili.com/video/BV1CF4m1F7k7/

CTFlearn – QR Code

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

檔案:

本題下載後是一個 QR Code,解碼後得到以下字串:

c3ludCB2ZiA6IGEwX29icWxfczBldHJnX2RlX3BicXI=

在最後看到 = 因此猜測可能是經過 Base64 編碼的字串,嘗試解碼得到以下字串:

synt vf : a0_obql_s0etrg_de_pbqr

這段字串看起來很像正常的英文片段,猜測可能經過位移,經過嘗試後發現是 ROT13,解碼後即可得到本題 flag。

CTFlearn – Binwalk

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

檔案:

本題是一張圖片,並提示在此圖片中藏了另一個檔案,要從中找出 flag。

確認檔案格式時,發現副檔名是 jpeg,但 MIME type 卻是 png,猜測可能合併了多張圖片,因此嘗試將目前看到的圖片分離(IEND)出去。

拆離後發現仍是一張圖片,瀏覽後即發現本題 flag。

CTFlearn – Don’t Bump Your Head(er)

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

根據題目敘述,送出正確的 header(s) 才能得到本題 flag,首先嘗試直接訪問,看會得到什麼。

回應說明 User-Agent 不正確,而最下方有註解提示,因此嘗試使用此值當作 User-Agent。

這次得到的訊息是來源(Referer)不正確,要是 awesomesauce.com,帶入此值後再次送出。

這次終於拿到本題 flag。

CTFlearn – BruXOR

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

題目說明要使用 xor 得出對應 flag,並且提到要暴力破解,因此僅需一次嘗試即可得到對應 flag。

JavaScript 參考程式碼:

const encoded = `q{vpln'bH_varHuebcrqxetrHOXEj`;

for (let i = 1; i <= 255; ++i) {
    const decoded = encoded.split('').map((char) => String.fromCharCode(char.charCodeAt(0) ^ i)).join('');

    console.log(`${i}: ${decoded}`);
}