日々のいろいろ

【setodaNote CTF】Crypto問題に挑戦しました

投稿日: 5/24/2025

前回の記事に続いて、今回はCrypto問題に挑戦しました。

ちなみに、1~3問は省略して、4問目からです。

4 tkys_secret_service

問題

分担が一区切りし拠点に立ち寄っていた後輩から、あなたが3か月前に送ってきたチャットが結局なんだったのか解けないでいると話しかけられました。そういえば暇だったから意味もなく秘匿回線で内偵中の後輩に暗号文を送っていたことを思い出します。

以下の文字列を解析してフラグを入手してください。

Gur cevgrsgbvh vp Pvhgevyyrq Hhsynmmbpbrq Vhpvezngbvh (PHV) ermbqrhg bh hvhprqreny mlmgrzm nhq vetnhbfngbvhm bm vp cnenzvahg bzcvegnhsr gv prqreny ntrhsbrm nhq snh qbersgyl bzcnsg gur nobybgl vp gur prqreny tvirehzrhg gv massrmmpayyl svhqasg bgm rmmrhgbny zbmmbvhm nhq pahsgbvhm. Gubm caoybsngbvh cevibqrm ntrhsbrm jbgu ersvzzrhqrq mrsaebgl erdaberzrhgm pve cevgrsgbht gur svhpbqrhgbnybgl vp PHV jurh gur bhpvezngbvh bm ermbqrhg bh hvhprqreny mlmgrzm nhq vetnhbfngbvhm; jurh gur hvhprqreny vetnhbfngbvh bm hvg svyyrsgbht ve znbhgnbhbht bhpvezngbvh vh orunyp vp n prqreny ntrhsl ve ambht ve vcrengbht n mlmgrz vh orunyp vp nh ntrhsl; nhq jurer gurer ner hv mcrsbpbs mnprtaneqbht erdaberzrhgm pve cevgrsgbht gur svhpbqrhgbnybgl vp Synt bm pynt{cabcab_sne_vp_zvy} PHV cermseborq ol gur naguvebfbht ynj, ertayngbvh, ve tvirehzrhgjbqr cvybsl pve gur PHV sngrtvel ybmgrq bh gur PHV Ertbmgel. Gur erdaberzrhgm nccyl gv nyy svzcvhrhgm vp hvhprqreny mlmgrzm nhq vetnhbfngbvhm gung cevsrmm, mgver, nhq/ve genhmzbg PHV, ve gung cevibqr cevgrsgbvh pve masu svzcvhrhgm. Gur mrsaebgl erdaberzrhgm ner bhgrhqrq pve amr ol prqreny ntrhsbrm bh svhgensgany irubsyrm ve vgure nterrzrhgm rmgnoybmurq orgjrrh guvmr ntrhsbrm nhq hvhprqreny vetnhbfngbvhm.

最初見たときは全くわかりませんでした。Base系や他エンコード・符号化でみられるような特徴的なフォーマットはなく、ただ読めないだけの文ですが、AIに投げたところ、置換暗号ではないかとの答えが返ってきました。
問題3がLOT13の問題なので、半信半疑でしたがとりあえずちょっとずつ単語が成り立つように置換していきます。

画像

しかし、なかなか上手くいかずギブアップ。

解答

時間かけてちゃんと置換していけば解けるようです。

5 lets_bake

問題

あなたはシェフ帽の人物からレシピを受け取りました。どうやら組織からの秘密のメッセージのようです。レシピを解読し、秘密のメッセージを入手してください。

Input:
NzRmNDRiMWE0Y2M2ZGNiNzc3NTMyNTcwZjk0MTE4NTMyNTcxZjE1YTE1NTJkY2M0

Recipe:
RnJvbV9CYXNlNjQoJ0EtWmEtejAtOSsvPScsdHJ1ZSkN]b2[sRnJvbV9IZXgoJ05vbmUnKQ0=]b2[sRm9yaygnJScsJ18nLGZhbHNlKQ0=]b2[sUkM0KHsnb3B0aW9uJzonVVRGOCcsJ3N0cmluZyc6J2NoZWYnfSwnTGF0aW4xJywnTGF0aW4xJyk=

なんかBase系の「=」ついているし、規則性ありそう?だし、と思いましたが全文をそのままBase64デコードするとエラーになったりでうまくいきません。
色々調べていると、「CyberChef」なるCrypto問題にうってつけのwebサービスがあるようです。

簡単な操作で高度なことができちゃいます。。。すごいですね。
ただ、ちゃんとデコードできたのは最初の一部だけなので、正常にデコードできた部分は省いて残りもデコードしていきます。
画像

すると、以下のようなメッセージであることがわかりました。

From_Base64('A-Za-z0-9+/=',true)
From_Hex('None')
Fork('%','_',false)
RC4({'option':'UTF8','string':'chef'},'Latin1','Latin1')

上記のメッセージはまさに、CyberChefの操作のことを示していました。

画像

メッセージ通りに操作すると、フラグをゲットできました。

画像

6 vul_rsa_01

問題

あなたは組織の定期研修に参加しています。教官から RSA 暗号の禁止事項くらいは覚えておくようにと課題が出題されました。どうやら暗号文 c を解くことができればそれだけ早く帰れるようです。

以下の RSA 暗号を解読してフラグを入手してください。

c: 39119617768257067256541748412833564043113729163757164299687579984124653789492591457335

n: 13373801376856352919495636794117610920860037770702465464324474778341963699665011787021257

e: 65537

きました、RSA暗号の問題です。
公開鍵をもとに、暗号化されているcを復号して平文を取得することで正解になるようです。
私の知る範囲では、まずnの素因数分解からなのですが、桁が大きすぎてだめでした。。

色々調べていると、RsaCtfToolというツールを知りました。

早速、README.mdを参考に使えるように環境のセットアップ。

nを-nオプションに、eを-eオプションに、cを--decryptオプションに指定して実行します。

画像

すごい...2秒くらいで復号してフラグゲットできてしまいました...。とんでもないツールに出会ってしまった気がします。
RSAを解くには、Pythonで剰余演算等を地道に実装していく必要があったイメージですが、これはもうチートですね。
ただ、RSAについては数学的に理解したい気持ちもあるため、CTFでは使いますがちゃんと勉強もする予定です。

7 vul_rsa_02

問題

あなたは引き続き組織の定期研修に参加しています。教官は昨日と同じ人物です。「早く帰れると言ったな。あれは嘘だ」昨日の信じられない光景が脳裏に蘇ります。RSA 暗号の禁止事項くらいは覚えておくようにと再び RSA 暗号の課題が出題されました。もはや誰も信じていませんがどうやら暗号文 c を解くことができればそれだけ早く帰れるようです。

以下の RSA 暗号を解読してフラグを入手してください。

c: 227982950403746746755552239763357058548502617805036635512868420433061892121830106966643649614593055827188324989309580260616202575703840597661315505385258421941843741681

n: 314346410651148884346780415550080886403387714336281086088147022485674797846237037974025946383115524274834695323732173639559408484919557273975110018517586435379414584423

e: 66936921908603214280018123951718024245768729741801173248810116559480507532472797061229726239246069153844944427944092809221289396952390359710880636835981794334459051137

先ほどの問題と違い、eがとんでもない桁数になりました。
とりあえず、出会ったばかりのチートツール、RsaCtfToolに投げます。

さすがに今回は5分以上はかかったものの、復号できちゃいました。
いろいろな攻撃を1つづつ試行しているようです。

画像
画像

8 WEARECIA

問題

家に帰ると黒い封筒が郵便受けに入っていました。封筒の中身は英字が羅列されたメモが一枚。青銅色の紙に白いインクで書かれており右下には同じインクで WEARECIA と記載されています。どうやら暗号文のようです。暗号文を解析してメッセージを受け取る必要がありそうです。

以下の暗号文を解読し、隠されたメッセージを見つけてください。フラグは得られたメッセージを flag{} で囲んで回答してください。

EMUFPHZLRFAXYUSDJKZLDKRNSHGNFIVJYQTQUXQBQVYUVLLTREVJYQTMKYRDMFDRCDNKFRHHMKVLLTGBMFDUTMALDUMKYQTGLWLWCM

謎です。タイトルのWe are CIAや、問題文の青銅色や白いインクにヒントが隠されているのかと推測しましたが、全くわからず。
また置換系となると、時間かかりそうだなと思ったのでギブアップ。

解答

下記のWriteUpを参考にしました。
https://takahoyo.hatenablog.com/entry/2021/09/09/235412#WEARECIA-300pts-76solves
深追いは...まあ、これは、いいでしょう...
しかし、CIAの暗号?っぽいですね。凄い。


コメント

まだコメントがありません

コメントする
0 / 1500 文字