ADCTF2014 [11] blacklist


SQL injectionキター

We have stupid blacklist. The flag is in flag table.

blacklist.adctf2014.katsudon.org

source

 

さてさて、どこに脆弱性があるのかなー?

blacklist.plを読むと、20行目で接続元のUser-AgentとIPをそのままInsertしていますね。

IPは変えられなくても、User-Agentは任意の文字列に変えられるので、これで攻撃しようと思います。

 

しかし、ここで一つ問題が

仮に『','hoge')#』なんていう文字列を送ったとしても、'hoge'はipに格納されてしまうためこれじゃあ見られないなぁ

あ、valuesに対して二つの (ry そうだった『),(』使えないんだ

う~ん、、、

 

あれ、数値ってもしかして

『'+conv(hex((select 'hoge')),16,10)+'』と送ると、『1752131429』という値が返ってきました。

『hoge』⇒『68 6F 67 65』⇒『1752131429』

これでイケるぜ!!

ただ、数値の上限があるから5文字ずつ取り出しますかね

 

INFORMATION_SCHEMA.TABLESからテーブル名`flag`

INFORMATION_SCHEMA.COLUMNSからカラム名`flag is here!!!`が分かります

あとはselect `flag is here!!!` from flagするだけー

sqli_blacklist.py

blacklist

 

FLAG: ADCTF_d0_NoT_Us3_FUcK1N_8l4ckL1sT