shuffle_base64
ファイル chall.py
および out.txt
が与えられた。
chall.py
は、以下の処理をするものだった。
- flagに2文字ごとにランダムな文字を挿入する。
- それにランダムな文字を加えて長さを3の倍数にする。
- その結果を3文字ごとに分割し、シャッフルする。
- その結果をBase64エンコードして出力する。
out.txt
のBase64エンコードされたデータの部分を CyberChef の From Base64 でデコードし、3文字ずつに分割すると、以下のようになった。
Files chall.py
and out.txt
were given.
What chall.py
does was:
- Insert random characters after each 2 characters of the flag.
- Add random characters to make the length multiple of 3.
- Split that in 3-character blocks and shuffle.
- Base64-encode the result and output.
I decoded the Base64-encoded data in out.txt
using "From Base64" on CyberChef and splitted to 3-character blocks. This is the result:
}d(
leq
FLT
ff|
64,
hu!
{s@
AG!
これをそれっぽく並べ替えて繋げると、以下のようになった。
I reordered this to make that look proper and joined. This is the result:
FLTAG!{s@hu!ff|leq64,}d(
余計な文字を消すことで、flagが得られた。
I obtained the flag by removing extra characters.
FLAG{shuffle64}
WaniCTF 2023