ksnctfの5問目、"Onion"を解いていきます。
ここで問題文はASCIIコードで表すことのできる文字のみで構成されていることが判明。
次にbase64について調べると、
こんなのが出てきた。
これも暗号っぽいのでgoogle先生に聞いてみると、"uuencode"という、base64と同じようにデータをテキストに変換するものらしい。
これもweb上でもコマンドでもデコードすることができる。
これをデコードしてflagゲット。
問題
問題文は意味不明な文字列が並べられているだけ。
とりあえず暗号か何かを疑ってみたりしましたが、文字列には空白文字もなければ意味不明な場所で改行していたりと全く手がかりを見つけることができなかった。
一時間ほど粘ってみたが、自分の知識ではどうにかなるものではないと悟った。
ここで先人の知恵を拝借。
解法
ヒントが書かれたページを見ると
- hint1:base64
- hint2:fileコマンド便利だよね
とりあえず問題文をファイルにしてfileコマンドに投げてみると
$ file onion
onion: ASCII text
ここで問題文はASCIIコードで表すことのできる文字のみで構成されていることが判明。
次にbase64について調べると、
- 7ビットで表されるASCII文字しかやり取りできない環境で、他のデータも送受信可能にする為に元データを6ビットずつに分割し、分割された値に対応するASCII文字を割り当てている。
- '000000'~'111111'に対応するASCII文字(= 'A'~'Z' , 'a'~'z' , '0'~'9' , '+' , '/')と'='のみで構成される。
- 76文字ごとに改行が入る。
また、デコードはweb上でもコマンドでもできる模様。
base64には改行が含まれているようなので、web上で実行しました。
一回デコードするとまたbase64らしき文字列が出てくるので、デコードできなくなるまでデコードを繰り返すと、
begin 666 <data>
51DQ!1U]&94QG4#-3:4%797I74$AU
end
こんなのが出てきた。
これも暗号っぽいのでgoogle先生に聞いてみると、"uuencode"という、base64と同じようにデータをテキストに変換するものらしい。
これもweb上でもコマンドでもデコードすることができる。
これをデコードしてflagゲット。
まとめ
今回も自分の知らないことばかりだった。
もっと精進せねば。
コメント
コメントを投稿