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

hamayanhamayan's blog

Irish-Name-Repo 3 [picoCTF 2019 Web 400]

https://ctftime.org/task/9547

前提知識

解説

こちらはパスワードしかない。
そう言えばhidden属性でdebug=0というのをPOSTで送っていたので、これを1にしてみると実行クエリが表示される。
試すと以下の通り。

<pre>password: fd
SQL query: SELECT * FROM admin where password = 'sq'
</pre><h1>Login failed.</h1>

こんなヒントあったのかと思い、一般的なペイロードを投げてみる。

<pre>password: ' OR 1 --
SQL query: SELECT * FROM admin where password = '' BE 1 --'
</pre>

ORがBEになるようだ。
さて、どう回避しようか。

  • どっかの解説
    • ORの代わりにBEを入れると、ORになってフラグが得られる
    • なんだその仕様はと思ったがこっちを見ると、ROT13でずらされているようなので、全部で26なので、もっかいずらすと戻るってだけだった
  • kusano_k先輩
    • debug=1で見てみるとSELECT * FROM admin where password = ''!='' --'と表示された
    • where後がpassword = '' != ''となっているが、うまく回避できるみたい
    • 念の為teratailで聞いてみた