正直、全完者がwriteup書いてくださっているので、小生がwriteup書く意味ないと思われるが、マークダウン記法の練習&小生の思考過程を残す意味で書くます。 nanimokangaeteinai.hateblo.jp github.com
なお、終了時間過ぎてたの気づかずに解いたものも含みます(ただの馬鹿です)
misc
WELCOME
Discord or UECTF2022のサイトに書いてある旗などから取得
#UECTF2022 スタートです!!
— UECTF (@uec_ctf) 2022年11月18日
競技時間は 2022/11/20 20:00(JST)までです。
皆さん、楽しんでいってください!!
また、今からでも参加可能なので、ぜひ以下のリンクから参加登録をお願いします!!
ルール: https://t.co/R5EXp9F2Ze
参加登録: https://t.co/ny28E05AEt#UECTF #UECTF2022 #調布祭 pic.twitter.com/ZKN623aGRV
caeser(続きはあとでかく)
caesar_output.txt に書かれている暗号文には数字や記号も書かれていることから、よくある定番のやつを拡張したものっぽい。
頭のいい人はチャチャっと復号するスクリプト書くと思いますが、小生はプログラムの読み書きもだが、そもそもキーボード打つのが遅いので(いまだにブラインドタッチできない)、スクリプト書いたりするより暗号化のスクリプトに試しに平文UECTF{ABCDEFGHIJKLMNOPQRSTUVWXYZ_1234567890!abcdefg}
を突っ込んでどんな感じに暗号化されるか見て法則性を掴んでflag打ち込む
UECTF{Th15_1s_a_b1t_Diff1Cult_c43seR}
redaction gone wrong 1
のり弁pdfが渡される(何の文章だこれ)
職業(院生の面したニート)病で、反射的に外国語のpdfはCtrl+A→DeepLにコピペしたらflag出てきた
redaction gone wrong 2
何か頑張れば見えそう。解法としては、
PCの夜間モード無効化→ディスプレイの明るさMAX→画面を凝視→UECTF{N3 er_ever_use_A_p3n_rofl}までは見えるので3とeの間はNeverのleet表記N3verであるだろうと推測
小生、昔から眩しいのが苦手(そもそもディスプレイ長時間見ると吐き気がしたり、目が痛くなって熱が出たりするのでCTF不適合者)なのでこの問題は苦行だった。(一時期はディスプレイ見る機会少ない職種に就こうと本気で考えてた)
GIF1
一瞬だけflagが表示されるGIFファイルが渡されるので、手持ちのiPhone 12で録画してflagが表示されたあたりで再生を止めるとflagがゆっくり見れる。
GIF2(画像今度春)
stegsolve に突っ込んだらでてきた。
OSINT(解けてない)
Wayback Machine に__yata_nano__
突っ込んだら引っかかると思ったら、「応答時間が長すぎます」と返ってきたのでWayback Machineに引っかからなかったのかと思ったら、これが正攻法?らしい。当時の我が家のネット環境がカスなのかWayback Machine側が一時的に重かったのかは知らん。
PWN
buffer_overflow
問題文でコンパイルオプションは-fno-stack-protectorをつけています。
と、ご丁寧にBoFのセキュリティ機構無効化してるよといってくれている。
#include<stdio.h> #include<string.h> int debug(); int main(){ char debug_flag,name[15]; debug_flag='0'; printf("What is your name?\n>"); scanf("%s",name); if(debug_flag=='1'){ debug(); } printf("Hello %s.\n",name); return 0; } int debug(){ char flag[32]="CTF{THIS_IS_NOT_TRUE_FLAG}"; printf("[DEBUG]:flag is %s\n",flag); }
debug_flag=='1' にすればdebug() 関数を呼び出してflagを漏らしてくれることがわかる。 また
char debug_flag,name[15]; debug_flag=='1'
とscanf("%s",name);
から入力する文字の16番目に'1' を入れればいいことがわかる。したがって
Rev
A file
誰かがファイルの拡張子を消してしまった。どのような中身のファイルなのか?
revPython(解けなかった)
pycdc使って(今度続き書く)
Crypto
RSA
output.txt にはcipher_text, p, q, eの値が書かれている。以下solver
最初、flag出てこなくて「もうCTFに関わるのやめようかな」と思ってたらp, qそれぞれ逆の数値つっこんでただけだった。
Forensic
Deleted(今度書く)
binwalk使った
Compare(解けなかった)
ImageMagick で2枚の画像の差分とった画像にflag書かれていないかな~と思ったけどダメでした。はい。 https://imagemagick.org/index.php
Web
webapi
とりあえず、初手でページのソースを見てみる
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>Hello world!</h1> <div class="flag"> <span class="flag-label">Flag is here:</span> <span class="flag-data"></span> </div> </body> <script> const FLAG_URL = 'https://i5omltk3rg2vbwbymc73hnpey40eowfq.lambda-url.ap-northeast-1.on.aws/'; fetch(FLAG_URL) .then(data => { document.getElementsByClassName('flag-data')[0].innerText = data; }) .catch(err => { document.getElementsByClassName('flag-data')[0].innerText = 'server error'; }) </script> </html>
FLAG_URL = 'https://i5omltk3rg2vbwbymc73hnpey40eowfq.lambda-url.ap-northeast-1.on.aws/';
にアクセスしたら何かありそう。アクセスする。
さて、flagを出すかと思ったら、終了時間をとっくに過ぎてたので終わり