4:00(JST)に開催されました。結果は11660点で376チーム中8位でした。自分で解けた問題をWriteupとして書いておきます。(MISC)Discordに入り、#rulesチャネルのメッセージを見ると、フラグが書いてあった。(MISC)計算結果をASCIIコードとしてデコードして、結合する。(MISC)サーバの処理概要は以下の通り。・resultを表示ここで使われているjokes.txtがないかを検索すると、以下のページが見つかった。icanhazdadjoke.com!")に書かれている内容からも一致する。icanhazdadjoke_scraper.pyをダウンロードして、Python2で実行し、icanhazdadjoke_jokes.txtを作成する。これを元に、英大文字のみで、文字列長順に並べ、確認しやすいリストを作成する。print(word)あとは質問に合う答えを入力して答えていけばよい。(GRUMBOT)写真を見つつ、鍵を推測しながら、Vigenere暗号としてhttps://www.dcode.fr/vigenere-cipherで復号する。鍵は"PLAYLANDPARK"で復号できた。(GRUMBOT)1文字ずつ暗号化しているので、ブルートフォースで復号する。breakprint(flag)復号結果は以下の通り。@PokemonSpoopyhttps://twitter.com/PokemonSpoopyを見てみるが、フラグは削除されたようだ。Archiveで2022/10/21のものを見てみる。https://web.archive.org/web/20221021194547/https://twitter.com/PokemonSpoopy以下のツイートがある。b'\x18-.=-\x02\x12%YX\x1d4\r\x0c=ZX6\x07I\x03~6?\\*&\x13}\x1b2\x01\nHD}\x1e^Z\x05\x04'"Mimikyu"を鍵にしてXORで復号する。pwnmeBOFでoverwrite_meを0x1337で上書きすればよい。配布されたファイルでは標準出力後にペイロードを送る必要があったが、ncで接続したサーバでは標準出力はなかった。p.recvline().rstrip()#print(data)print(payload)p.sendline(payload)p.interactive()実行結果は以下の通り。(REV)問題のコードをhexデコードすると、pycファイルになる。f.write(code)デコンパイルする。chall.pyc上からtmpの条件を見ていく。chr(118)'v'順不同だが、周り文字で意味合い的に以下のようになる。chr(121)'y'順不同だが、周り文字で意味合い的に以下のようになる。ord(tmp[30])の組み合わせをブルートフォースで一覧で出す。chr(c30))実行結果は以下の通り。3ht3th4ft4tf:fh:hfDNtDWhDhWDtNNDtNtDWDhWhDf4tf:hfh:ft4h3th:fhDWhWDhf:ht3t3ht4ftDNtNDtf4th3一番下の"th3"が一番合っていそう。ASCIIコードの合計値を確認しながら、tmp[32:37]の組み合わせを考える。'UDCTF{y0u\'v3_b3en_bytt3n_by_th3_4}'])3105'4'を除く4つの文字のASCIIコードの合計は433。chr(c4))パターンをいろいろ見ていたら、sn4keが合いそう。(WEB)Refererをflag.orgにすれば良さそう。stealthmodeactive今度は追加でUserAgentをstealthmodeactiveにする。PATCH...今度は追加でPATCHメソッドにする。(FORENSICS)Audacityで開き、スペクトログラムを見る。スペクトログラムは以下のように見える。s])'IRQHT{13ot_a3_o10b3_pf0_F5UkhN}'シーザー暗号と推測し、https://www.geocachingtoolbox.com/index.php?lang=en&page=caesarCipherで復号する。(CRYPTO)CyberChefでの変換順が書いてある。XOR鍵がわからない。フラグが"UDCTF{"から始まることを前提にXOR前のデータの先頭と、XOR後のデータから鍵を求め、復号する。flag)実行結果は以下の通り。(CRYPTO)スペース区切りで、辞書の2つのワードのハッシュが与えられているので、そのワードを答える問題。hashcatでクラックする。(CRYPTO)英子文字(0x61-0x7a)の10バイトの16進数表記文字列がXORの鍵になっている。フラグが"UDCTF{"から始まることを前提に鍵を推測しながら復号する。最終的なコードは以下の通り。flag)このコードの実行結果は以下の通り。(CRYPTO)スクリプトの処理概要は以下の通り。■/ask/:magic・:magicで指定した文字列をAES暗号化する。?'を出力デベロッパーツールのコンソールで確認する。15リークした文字をインデックス順に並べる。a_wonderful_key_that_is_wonder:)これをkeyにしてフラグを復号する。(CRYPTO)スクリプトの処理概要は以下の通り。一方の公開鍵は以下の通り。0x3def414f61737a47895419ec73fc1eed713c954debfefd7c5c4fb2893dfee959744fa9fc9eabf0a5f6e86b476c952745608b1e513260d872c456b1ca58b54252d69c448ceb08c6700351417009883bb83a5223fa521c6d0142dbf3bce0dd2c050decc6ddf3e0a1b3956468ee9a8e7078fa3614282d34b44ae0137d72997dもう一方の公開鍵は以下の通り。0xb634ed07578e7c5b2c06373f2622e71fa32b06ef77022e2ed89df68af194421bb2627fc49c49f6911111c46042b466ac1b6914552dca607a045c681842ad6da0f5ad10e91ecd8d761d7e440d0b7f0cc5c2aa1d595f9c6704519a5c8203eb252dc29743773538ef960f97005143d4cee38837aaf1cc98ead678d44c77002dsageに計算させれば、片方の秘密鍵がわかり、共有鍵を算出できる。あとはやり取りしている、ivとmsgからAES暗号を復号していけばよい。print(pt)実行結果は以下の通り。Writeup月別アーカイブはてなブログをはじめよう!satou-yさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。