RANDOM NOTES
ush
ush
ush

master of universe

railsアプリケーション内でスキーマのコメント情報を取得する

背景 rails の rake タスクで、データベーススキーマのコメントを取得したい場面があったが、情報が全然なかったのでメモ 結論 雑記 rails4 での方法は見つかるが、rails5 でスキーマのコメント書き込みが取り込まれてから、rails4 での方法が使えなくなっていた。 table_comment に関する情報がとにかくなく、色々漁った後 github の rails リポジトリの test でこのメソッドが使われているのを発見した。 test ってこういう風に、ドキュメント的な感じで使えますね。

waniCTF 2020 writeup

waniCTF に参加しました。 https://wanictf.org/ 最近課題で忙殺されていて、ksnctf も解き終わっていないですが、ちょっと解けそうな問題が多そうだったため、参加してみました。 この CTF は初心者向けの CTF になっていて、ヒントが多めにもらえるやさしめの CTF です。 結果は 64 / 242 だったよう スコアの詳細 うーん、pwn が苦手ですね。reverse も苦手だと感じました。 Crypt Veni, vidi シザー暗号ですね。FLAG{…}の形式の文字列になっているため、F -> S のシフト数を考えます exclusive xor で…

ksnctf Q.18 usb flash drive

問題概要 zip ファイルが配布されており、展開すると img ファイルが見つかる。 調査してみる img ファイルをさらに展開してみると、3 つの画像ファイルとSYSTEMと書かれた隠しファイルが見つかった。 strings で FLAG 的な文字列を探したが画像ファイルに埋め込まれているわけではない。 file コマンドで img を調べてみると、 と出る。 とか、とかあり、それぞれ調べてみると「ブートセクターの一種」とかなんかとか出てくる。 windows のブートセクターが usb にインストールされてる?? ん? よくわからん? usb に img を入れて、usb から起動しよう…

信号守ったら車に轢かれそうになった話

あと半年くらい秋でいてくれ 最近ようやく涼しくなって、最高の季節になりました。 最近自転車も若干きれいにして走りやすくなったので、買い物ついでにちょっと街を探検することに。 街を探検するときは基本的に目的地を設定しないと走り出せないので、 今回はちょっと遠目のパン屋でなんか買ってこようかなとひたすら南に走り出しました。 目的地周辺についたはいいものの、肝心のパン屋のお店が見つからず、 日も落ちつつあったため帰路に。 信号は基本的に守る 周りに車が見えなくても信号は守る人っていますよね。 一人で行動するとき僕もそのタイプです。 ですが、今日ちょっと面白いことがあったので書いておきます。 帰り道…

ksnctf Q.31 KanGacha

問題の概要 出題ページには、問題ページへのリンクとソースコードが配布されていた。 問題ページをみると、「ガチャ」があった。 ソースコードを併せてみてみると、ボタンを押すとランダムに艦隊(の名前)がゲットできるというものだ。 ゲットした艦隊(の名前)の情報は、クッキーで管理されているようだが、クッキーの改竄を防ぐためにハッシュ関数で 署名をして、ページアクセス時にそのクッキーの値を検証している。 ハッシュ関数に使っているソルトがフラグとなっているようだ。 足掻き 最近自力で解けていないため、これは自力で解きたいと思い、1 日かけた。 結論をいうとダメでした… php の関数を調べまくり、ハッシ…

ksnctf Q.12 Simple Auth II

問題の概要 問題のページとソースコードが見られる。 問題ページはこんな感じで、ID と password 入力フォームがある。 適当に id, pass と指定して送信すると、同じ画面で 「Incorrect ID or password」 と表示された。 足掻き ソースコードも見てみると、問題通りのシンプルなログイン機構だった。 flag はデータベース内のデータのパスワードのようだ。 ログインがうまくできれば、flag としてそのユーザーのパスワードが表示される。 前回の問題に当たる「Q.32 simple auth」では、php の緩い比較「==」の仕様をつくことでフラグを入手できた…

ksnctf Q.26 Sherlock Holmes 70pt

問題の概要 問題ページへのリンクが張られている。 問題ページでは、シャーロックホームズの「ボヘミアの醜聞」の原文が載っている。 プロジェクトグーテンベルクから持ってきたようだ。 色々調べる なんかめんどくさそうだなと思いながら、とりあえず色々調べてみよう。 ぱっとみ普通の html っぽいが、ソースを見てみる。 特に変なところはないが、url をよく見ると index.pl となっている。 perl だ。CGI だな。 ディレクトリトラバーサルを試みると、index.pl のあるディレクトリのファイルが表示された。 すると、flag.txt がある。ほかには、「ボヘミアの醜聞」の素となると思…

ksnctf Q.16 mathI

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

ksnctf Q.15 Jewel

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

ksnctf Q.32 simple auth

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