# 1. Environment & Condition (状況判定)
Target: Web App, Login Form, SQL Database
Condition: 通常のSQLi(' OR 1=1 --)でLogin Bypassができない。しかし、システムに「自動修復機能」や「ヘルスチェック」が存在する示唆がある場合(mail.log 等で確認)。
Sign: ログインフォームで ' を入れるとSQLエラーが出るが、認証回避には至らない。「DBが破損したら初期化する」といった記述がログにある。
# 2. Minimal Verification (生存確認)
Check command: ログインフォーム等の入力欄にシングルクォート ' を入力。
Expected Response: SQL Syntax Errorや、予期せぬ挙動(500 Errorなど)が返る。
# 3. Exploit Techniques (突破手法)
Main Method: テーブル削除による強制リセット ユーザーテーブルごと削除し、システムの自動復旧処理をトリガーさせる。
SQL
code:_
'; DROP TABLE users; --
※攻撃後、1〜2分待機してサーバー側の修復スクリプトが走るのを待つ。
Sub Method: テーブル名が不明な場合は DROP DATABASE を試す(リスク高)。
Syntax/Dialects:
MySQL: '; DROP TABLE users; -- -
PostgreSQL: '; DROP TABLE users; --
# 4. Mechanism (動作原理)
Why: アプリケーションの「DBが壊れたら初期設定(デフォルトパスワード)で再構築する」という運用スクリプト(オートヒーリング)を逆手に取り、攻撃者が知っている初期パスワードの状態へ強制的に戻すため。
# 5. Risk & OpSec (リスク管理)
Risk Level: High
Side Effect: データベース完全破壊、サービス停止、他ユーザーのデータ消失。CTF以外では絶対禁止。ステルス性皆無。
# 6. Search Tags (検索の罠)
Symptom: Login Failed, No Error Message, Invalid keywords detected
Goal: Reset DB, Force Default Credentials, Recovery Logic Abuse
Synonym: Destructive SQLi, DB破壊, SQLインジェクション