このページにはプロモーションが含まれています
問題情報
- タイトル:Irish-Name-Repo 1
- カテゴリ:Web
- 難易度:Medium
- 使用ツール:ブラウザ、Burp Suite
問題文

問題文の和訳
ログインできると思いますか?ログインできるか試してみてください!
チャレンジインスタンスを起動後、追加の詳細情報が利用可能になります。
ヒント1:これとやり取りする方法はあまりなさそうです。ユーザーはデータベースに保存されているのでしょうか?
ヒント2:ウェブサイトがログインをどのように検証しているか考えてみてください。
DeepL.com(無料版)で翻訳しました。
アプローチ(解法の流れ)
1. 動作を確認する
・URLからWebサイトにアクセス
・左上のハンバーガーメニューを開く
・Admin Loginを開く
すると、以下のようなログインフォームが表示されました。

Username:user1
Password:aaaaa
適当なユーザー名とパスワードを入力してみると、
Login failed.
(和訳:ログインに失敗しました。)
ログイン失敗のメッセージが返ってきました。
2. Burp Suiteでusernameの値を修正する
試したこと:
Burp SuiteのRepeaterを使って、リクエストヘッダーの値をusername=admin'--&password=aaa&debug=0に変更してみました。
3. FLAGをゲット!
レスポンスを確認すると、フラグが返ってきました🏁

学んだこと
admin'-- を用いたSQLインジェクションを試したところ、
パスワードを正しく入力していないにもかかわらず
ログインできてしまった。
SQLインジェクション対策の基本
これは、ユーザー入力をそのままSQL文に組み込んでいたため、-- によって以降の条件(パスワードチェック)が
コメントアウトされたことが原因。
この問題は、プリペアドステートメントを使用することで防ぐことができる。
ユーザー入力をSQL文として解釈させない。
はなまるお読みいただきありがとうございました!









コメント