【writeup】Q2 an apartment

技術

Dcbuarc fa UjedUFG!!! Ujed to e jiaqierrtpq utiubc dtfl eiawpz fdcpfm rcrscio. Dc repeqc e jcirepcpf UFG otfc (lffjo://ufg.ujed.otfc/). Hcic dc lehc oarc ceom UFG xwcoftapo. Tg maw eic e UFG scqtppci, maw olawbz jieuftuc ap flto otfc :) Al! Maw oabhcz flto otrjbc owsoftfwftap utjlci!!! AN... T'bb qthc maw flc Gbeq. Flc Gbeq to flc ftfbc ag flto xwcoftap! YZ Swf tf to e utjlci fcyf faa... aiv Zcuimjf tf epz zcbcfc dltfc ojeuc.

gabbad flto gairef Ujed{Gbeq}

既に暗号化されていた

lffjo → https

UjedUFG → CpawCTF

このように少しずつ英文法をみていくと1文字ずつなんとなく復号できます

置換するスクリプト

let inputText = "Dcbuarc fa UjedUFG!!! Ujed to e jiaqierrtpq utiubc dtfl eiawpz fdcpfm rcrscio. Dc repeqc e jcirepcpf UFG otfc (lffjo://ufg.ujed.otfc/). Hcic dc lehc oarc ceom UFG xwcoftapo. Tg maw eic e UFG scqtppci, maw olawbz jieuftuc ap flto otfc :) Al! Maw oabhcz flto otrjbc owsoftfwftap utjlci!!! AN... T'bb qthc maw flc Gbeq. Flc Gbeq to flc ftfbc ag flto xwcoftap! YZ Swf tf to e utjlci fcyf faa... aiv Zcuimjf tf epz zcbcfc dltfc ojeuc.";

function replaceText(text) {
    const replacements = {
        c: 'e',
        d: 'w',
        e: 'a',
        f: 't',
        g: 'f',
        j: 'p',
        l: 'h',
        i: 'r',
        o: 's',
        t: 'i',
        y: 'x',
        z: 'D',
        m: 'y',
        b: 'l',
        a: 'o',
        r: 'm',
        p: 'n',
        q: 'g',
        s: 'b',
        x: 'q',
        w: 'u',
        n: 'k',
        u: 'c',
    };

    return text.split('').map(char => {
        if (char.match(/\s|[.,;:'"!?@#$%^&*()\-_+=<>{}[\]~`]\//)) {
            return char; // 空白や記号はそのまま残す
        }

        let lowerChar = char.toLowerCase();
        return replacements[lowerChar] ? (char === lowerChar ? replacements[lowerChar] : replacements[lowerChar].toUpperCase()) : char;
    }).join('');
}

let outputText = replaceText(inputText);
console.log(outputText);

翻訳すると

CpawCTFへようこそ! Cpaw はメンバー約 20 名が所属するプログラミング サークルです。 常設CTFサイト(https://ctf.cpaw.site/)を運営しております。 簡単な CTF の質問があります。 CTF の初心者の方は、このサイトで練習してください :) ああ! この単純な置換暗号を解決しました!!! OK...フラグをあげます。 フラグはこの質問のタイトルです。 XD でもこれも暗号文です...orz 復号化して空白を削除してください。 この形式に従います Cpaw{Flag}

↓変換すると

ok onomiyaki

コメント

タイトルとURLをコピーしました