はまやんはまやんはまやん

hamayanhamayan's blog

DownUnderCTF 2022 Writeupsというかほぼチラシの裏

[crypto] baby arx 暗号の処理を見ていると、和とかが入っていて逆計算結構大変そう。 なので、DUCTF{から始まっていることを過程して、先頭から順番に全探索していくことを考える。 ストリームで1byte出力するのにバッファの先頭2byteが使われている。 初期…

セキュリティにおける"gadget"とは何なのか?

CTFのWriteup、もしくは、セキュリティ関連の解説において"gadget"という言葉が出てくることがある。 ググラビティが低いために思ったような情報が出てこなかったり、gadgetは攻撃の一部で利用されることもあってフィーチャーされないといったことがあるので…

CakeCTF 2022 Writeups

[rev] nimrev ghidraで開いてCのコードを追っていく。 NimMainという関数があり、問題名を見ても、nimで書かれているのが分かる。 それっぽく処理を追っていくとNimMainModule関数にメインロジックがある。 変数名をちょっと読みやすく変えるとこのような感…

SHELLCTF 2022 Writeups

[crypto] OX9OR2 フラグに9文字の鍵をXORしたものがencryptedとして与えられる。 encryptedにとりあえずSHELL{???を鍵として渡してみるとXORISC(@!T6DZM.&.!>6UI,Eと出てくる。 鍵の先頭はXORISCのようだ。 XORISC???を改めて鍵にしてみる。 SHELL{(@!_1S_R3…

nullcon HackIM CTF 2022 Writeups

[web] Jsonify この問題解いたら謎の人物から解き方教えてDM来ました。 GET /するとphpコードがもらえる。 改行と空白が消されているのでPHP Beautifierとか使ったり、見た感じで復元する。 なぜこんな面倒なことをしているか分からないが、もしかしたら何か…

Matrix Reducing [freee プログラミングコンテスト2022(AtCoder Beginner Contest 264) C]

https://atcoder.jp/contests/abc264/tasks/abc264_c 前提知識 bit全探索 解法 パっと見た感じ難しい問題に見えると思う。 この問題で注目すべき部分は制約である。 盤面のサイズがとても小さく、最大でも10。 制約が小さいということは、少し無茶な解法でも…

T3N4CI0US CTF - Escape Writeups

[web] cigarette GET /をすると以下のような応答が帰ってきて、フラグが含まれている HTTP/1.1 200 OK Date: Wed, 10 Aug 2022 16:14:28 GMT Server: Apache/2.4.25 (Debian) X-Powered-By: PHP/5.6.40 Key: T3N4CI0US{bc298e7_daf7_b2d4b347f67_c_56e9d_de3…

javascriptパズル (corCTF 2022 friendsより)

CTFでjavascript何もわからなくなったのでパズルとして紹介しておきます。 const x = [] const y = x ['admin','admin','__proto__'] = ['admin','admin','__proto__'] const z = x ['1','2','3'] = ['1','2','3'] console.log(x.includes('admin')) // -> t…

corCTF 2022 writeups

[forensic] whack a frog ぱらぱら見ていくと GET /anticheat?x=18&y=11&event=mousemove というのが連なっている。 適当にダンプしてきて、GETリクエストの内容を見てみる。 GET /anticheat?x=365&y=10&event=mousemove GET /anticheat?x=295&y=20&event=mo…

Arab Security Cyber Wargames Championship 2022 Qual Writeups

CTFtime.org / Arab Security Cyber Wargames 2022 Qualifications [Forensic] Persistent Ghost Windowsで永続化と言えばASEP(:AutoStart Extensibility Points)を悪用したものなので、関連キーワードで検索していく。 RunOnceで検索すると、 Key Name: HKE…

TFC CTF (2022) Writeups

[crypto] BASIC /Rn/X7n#bUc.rjzh,|eEsg,?&QI;@^ARm}UKOkICi#X.ixEmN]D Decrypt a Message - Cipher Identifier - Online Code Recognizer ここで判別してみると、Base91らしい。 Base91 Encoding - Base 91 Online Decoder, Encoder, Translator ここででコ…

DiceCTF @ HOPE Writeups

CTFtime.org / DiceCTF @ HOPE [crypto] obp random.randrange(256)と1byte分の鍵が作られている。 鍵でxorして暗号文が作られているが、plaintextの先頭はフラグがhopeから始まると思うので、key = 0xba ^ ord('h')という感じで復元できる。 あとは1byteず…

vsCTF (2022?) Writeups

2336点で65位/635。 んー、Web問… [Web] Sanity Check Burpで与えられたURLを開いてソースを眺めると、フラグが書いてある curl https://challs.viewsource.me/sanity-check/ | grep vsctf Web何も分からなかった… [Forensic] Portal Savior 一行目で検索す…

XX to XXX [AtCoder Beginner Contest 259 C]

https://atcoder.jp/contests/abc259/tasks/abc259_c あるといい知識 (自分の解法では)ランレングス圧縮 解説 https://atcoder.jp/contests/abc259/submissions/33113322 ランレングス圧縮というものを知っていると少し解きやすかったかもしれない。 性質…

Circumferences [AtCoder Beginner Contest 259 D]

https://atcoder.jp/contests/abc259/tasks/abc259_d 前提知識 幾何:円上に点があるかの判別、2円の交差判定 到達可能性判定 解説 https://atcoder.jp/contests/abc259/submissions/33122718 今回の問題は前提として、幾何の以下の判定方法を知っている必要…

Addition and Multiplication 2 [日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257) E]

https://atcoder.jp/contests/abc257/tasks/abc257_e 前提知識 (構築テクに似たようなものがある。ここのテク2) 解説 https://atcoder.jp/contests/abc257/submissions/32754197 この問題は貪欲法で解く。 アドホックな解法ではあるが、方針としてはテクと…

Jumping Takahashi 2 [日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257) D]

https://atcoder.jp/contests/abc257/tasks/abc257_d 前提知識 二分探索 BFS (BFSを使わなくても良いやり方もある) 解説 https://atcoder.jp/contests/abc257/submissions/32753407 何から考え始めるか いつものように全探索解法がないか探してみる。 全探…

Robot Takahashi [日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257) C]

https://atcoder.jp/contests/abc257/tasks/abc257_c 前提知識 SegTree (だが、使わない解法もあると思う) 解説 https://atcoder.jp/contests/abc257/submissions/32751195 全探索解法に向けて まずは全探索解法がないかを模索してみる。 Xが実数全体を動…

WeCTF 2022 Writeups

Dino Run 恐竜で遊ぶゲームが起動する。 フラグが右下にあるようなので移動しよう。 盤面がそれほど大きくないこともあり、フラグマスに到達でき、表示されたフラグが答え Grafana Grafana v8.3.0 (914fcedb72)が使用されている 調べるとLFI脆弱性がある htt…

SECCON Beginners CTF 2022 Pwn 解説まとめ Writeups

復習しましたー、環境生かして頂いてて、ありがとうございます。 解説元のみなさんもかなり勉強になりました…ありがとうございます。 https://score.beginners.azure.noc.seccon.jp/ [pwn] BeginnersBof 作問者 https://feneshi.co/ctf4b2022writeup/ https:…

SECCON Beginners CTF 2022 Web+α 解説

Web問全部と他解けた問題を解説。 Util [web] main.goの29行目でcommnd := "ping -c 1 -W 1 " + param.Address + " 1>&2"のように呼び出すコマンド文字列を作成している。 入力値は自由に入れられるので、コマンドインジェクション脆弱性がある。 セミコロン…

OSCP 合格体験記 2022/05

ナレッジ共有です。 OSCPを受ける前に HackTheBoxを少なくとも数個は完了させておくこと HackTheBoxのVIPはOSCPに比べたら信じられないくらい安いのでVIPを契約して、少なくともWriteupを見ながらEasyが攻略できるか確認しておくといい。見ながらでも良く分…

Index Trio [モノグサプログラミングコンテスト2022(AtCoder Beginner Contest 249) D]

https://atcoder.jp/contests/abc249/tasks/abc249_d 前提知識 約数列挙 解説 https://atcoder.jp/contests/abc249/submissions/31211388 とある数xの約数列挙をO(sqrt(x))で行う方法がある。 もし分からない場合は「約数列挙」あたりで検索して、勉強してく…

Just K [モノグサプログラミングコンテスト2022(AtCoder Beginner Contest 249) C]

https://atcoder.jp/contests/abc249/tasks/abc249_c 前提知識 bit全列挙 解説 https://atcoder.jp/contests/abc249/submissions/31208645 この問題ではbit全列挙が分かっているとスムーズに解くことができる。 bit全列挙については、他に詳しい解説があるの…

Keep Connect [ユニークビジョンプログラミングコンテスト2022(AtCoder Beginner Contest 248) F]

https://atcoder.jp/contests/abc248/tasks/abc248_f 前提知識 (連結DP) 解説 https://atcoder.jp/contests/abc248/submissions/31047647 全くメジャーな言い回しではないが、連結DPをする。 ただ単に連結性を状態として持つDP。 一般にこの手のDPでは行列…

K-colinear Line [ユニークビジョンプログラミングコンテスト2022(AtCoder Beginner Contest 248) E]

https://atcoder.jp/contests/abc248/tasks/abc248_e 解説 https://atcoder.jp/contests/abc248/submissions/31046558 幾何問題。 以下解法、非常に面倒なので、別の解法があるかも… (解法に移る前に) 以下のケースでちょっとはまったので、WAではまってる…

Range Count Query [ユニークビジョンプログラミングコンテスト2022(AtCoder Beginner Contest 248) D]

https://atcoder.jp/contests/abc248/tasks/abc248_d 前提知識 二分探索 解説 https://atcoder.jp/contests/abc248/submissions/31044881 色々な解法が見える問題。 実際WaveletMatrixというデータ構造を使えば、一瞬で答えが出るのだが、二分探索解法で説明…

Dice Sum [ユニークビジョンプログラミングコンテスト2022(AtCoder Beginner Contest 248) C]

https://atcoder.jp/contests/abc248/tasks/abc248_c 前提知識 動的計画法 解説 https://atcoder.jp/contests/abc248/submissions/31043632 この問題では動的計画法を用いて、答えを作成していく。 動的計画法の入門の次の一手くらいの問題なので、全く分か…

Bishop 2 [AtCoder Beginner Contest 246 E]

https://atcoder.jp/contests/abc246/tasks/abc246_e 前提知識 拡張ダイクストラ 解説 https://atcoder.jp/contests/abc246/submissions/30681205 問題文とはxとyの解釈を逆にして説明している。 好みの問題ではあるのだが、つまり、チェス盤の上からy行目、…

2-variable Function [AtCoder Beginner Contest 246 D]

https://atcoder.jp/contests/abc246/tasks/abc246_d 前提知識 二分探索 解説 https://atcoder.jp/contests/abc246/submissions/30680524 なかなか難しいというか、競プロ的なアプローチを含んだ問題。 二分探索が分かっていない場合はそちらを先に学習して…