つれづれなる備忘録

CTF関連の事やその他諸々

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*1,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

*1:select 'hoge'