ksnctf Q.15 Jewel

apk(android アプリ)の問題。 とりあえず、ctf で apk を扱うときどういうツールを使うのか調べて、それらを使って色々調べてみることに。 最終的に使ったツールたち apktool: apk を unzip するツール。AndroidManifest とか見れる jadx: jar をデコンパイルするツール dex2jar dex を jar に変換するツール すると簡単に java ソースコードがでてきた。 何やらデバイス ID を SHA256 でほにゃほにゃしているっぽい。 何やらデバイス ID の比較により、行われているっぽい。 特定のデバイス ID でしか表示されない…

ksnctf Q.16 mathI

これは物凄い桁の数字がいくつも並んでいるが、この変数の感じ、見覚えがある。 これはそう、cpawCTF で悩まされた RSA 暗号だ。 一度似た問題を解いているので、簡単だった。 過去に作った exploit をそのまま使う。 若干 python モジュールの関係で、モジュロ逆数周りで変更があったけど、本当にそのまま python スクリプトを流用して終わった。 モジュロ逆数の関数は以下のサイトからお借りしました。 晴耕雨読 | Python でモジュラ逆数を求める (modinv) https://tex2e.github.io/blog/crypto/modular-mul-invers…

ksnctf Q.32 simple auth

php のソースコードが見られる。 単純なログイン機構だが、脆弱性があるらしい。 30 分くらい試行錯誤してみたり、色々考えてみたが、全然わからん。 というわけで、かなり怪しい strcasecmp を調べる。 しばらく調べていると、このログイン機構、重要なのは ここらしい。 つまり、厳密でない比較。 要点 ` $_POST‘password’ ` これは、配列が入る可能性がある。 ここに配列を入れると、 これが null になるらしい。 そうなると、 の比較となるわけだが、これがなんと true となる。 は、オペランドを相互型変換して、比較をする。 は、型変換なしで比較する、というこ…

ksnctf Q.14

ksnctf Q.14 John これをヒント目的で見に来た人 John the ripper を調べなさい。 問題 問題ページには、なにやらログイン情報みたいなものがある。 ユーザー ID は user00 から user20 と、user99 だ。 ぱっとみログイン情報っぽいが、なんの情報かわからない。 よくよく見てみると、user99 のハッシュ文字列みたいなものが、よめるようになっている。 「Dictionary is here.」 とりあえず、この url を見てみる。 ( http にコロンが必要 ) すると、こんな感じで単語がひたすら並んでいる。 … 辞書攻撃かな。 なんだか大…

ksnctf Q.11

ksnctf Q.11 Riddle 難しかった。 IDA の使い方を覚えるのに時間がかかった。 FLAG の文字数まではわかったものの、その後進展できず。 write up からヒントをもらい、解き終えた。 重要だったのは、 入力を xor する処理 と 入力文字と FLAG を比較する処理 ctf みたいな、文字列を直接表示できないプログラムではよく使われる処理らしい。 感想 それにしても、pwn はやっぱり面白い。 そして、やっぱりめっちゃ難しい。 アセンブリから処理をイメージすることが難しい。 もうちょっと特訓を積みたい!

ksnctf Q.12

kusanoCTF Q.12 Hypertext Preprocessor 問題には url が掲載されている。 url を開くと、時間が表示されたサイトが開かれる。 なんかホラーサイトみたいな見た目で、放置したらドッキリ系のアニメーションが起こりそうな雰囲気があるが、とりあえずディベロッパーツールを開く。 特に js とかはなさそう。 ここで、url の末尾のファイル拡張子が php であることに気づく。 そういえば、つい最近 PHP でもっとも悪用された脆弱性というものを見たなと思い出した。 非常に簡単に任意コマンドが実行できてしまう脆弱性だ。 詳細については下の動画がある https:…

ksnctf Q.13

ksnctf Q.13 Proverb 問題には ssh 先のアドレスとパスワードが載っている。 「pwn かな」となんとなく思いながらサーバーにアクセスする。 サーバーに入り、とりあえず ls -la。 readme.txt と、他に flag.txt proverb.txt proverb の 4 つファイルがあった。 調べる ここで、これらのファイル全て、write 権限が無いことに気づく。 ディレクトリにも書き込み権限はない。 さらに read 権限も厳しくついているため、gdb  や hexdump で proverb を見れない。 さっぱりわからず、とりあえず proverb …

ksnctf Q.9

Ksnctf Q.9 Digest is secure! Digest 認証の問題。 問題ページに pcap が配布されているので、とりまダウンロードして悠々と WireShark で開く。 ぱっと見で、Digest 認証を通過して、二つのページを取得している模様。 Wireshark はすごくて、この pcap ファイルから html ファイルを生成することができる。 そうすると、3 つのファイルか吐き出された。 うち二つは 401 と、その後の 200 の普通の html ファイルで、もう一つが htdigest というファイルだった。 とりあえず 200 の html ファイルを開く。…

ksnctf Q.7

program.cpp というファイルが配布されている。 このファイルは空白とタブがごちゃまぜになった cpp プログラムに見える。 例に違わず僕のこれは cpp だと確信していたため、このプログラムをみて思った。 「くそ汚いな」 とはいっても、cpp は普通に実行できるはずだ。 そこで gcc でコンパイルして実行してみる。 $ ./a.out FROGThisiswrong:( ムカつく顔である。 いま思えばこの顔に全てを狂わされたのかもしれない。 この文字列の形式から FLAG の文字列に似ているため、ひたすら cpp デバッグした。 しかし、お察しの通り.cpp はフェイクだ。 僕は…

cpawCTFを解いた

cpawCTF を解きました。 https://ctf.cpaw.site/index.php 常設 CTF で、入門・初心者におすすめされるものとして有名な cpawCTF を解いた。 内容は簡単なものが多く、かなり楽しかったです。 CTF やったことない人は、確かに cpawCTF から入るべきだね.. (その人の技術力によるけど) CTF はやったことない状態で、全部解くのに合計で 12 時間くらいかかった。 (そのうち 6 時間は Level 3 の数学の問題で溶かした…数弱すぎる) 問題を解くと得点がもらえ、得点と達成順(?)でランキングがつく。特典は Max で 1890 点。 …