【picoCTF – Write Up】 Irish-Name-Repo 1(Medium – Web Exploitation)

Irish-Name-Repo 1のアイキャッチ

このページにはプロモーションが含まれています

目次
プログラミング言語の人気オンラインコース

問題情報

  • タイトル:Irish-Name-Repo 1
  • カテゴリ:Web
  • 難易度:Medium
  • 使用ツール:ブラウザ、Burp Suite

問題文

Irish-Name-Repo 1の問題文

問題文の和訳

ログインできると思いますか?ログインできるか試してみてください!
チャレンジインスタンスを起動後、追加の詳細情報が利用可能になります。

ヒント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文として解釈させない。

はなまる

お読みいただきありがとうございました!

よかったらシェアしてください!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

セキュリティを中心に学習・実践しています。
CTFのWrite Upや検証記録を発信中。
[保有資格:ITパスポート、基本情報技術者、応用情報技術者]

コメント

コメントする

CAPTCHA


目次