ソース:
訳:
私はターゲットの API ペネトレーション テストを行っていました。 redacted.com だとします。
ログインに成功した後、リクエストにはもう 1 つの HTTP ヘッダー、User ヘッダーがあり、その値はアプリケーションにログインするユーザー名です。
POST /abcd/abcd
Authorization: token
Host: redacted.com
User: user.abc
Postman-Token: token
...
{body request}
ここで、IDOR の可能性を考慮してユーザー名を変更しようとしましたが、サーバーは、内部エラー コード 500 と、この API アクセスを取得できないというエラー メッセージを含むメッセージを表示して、ユーザー名を検証します。
このパラメータは検証されているため、SQL インジェクションの可能性もあるため、基本的な SQL インジェクションをリクエストに ' OR 1=1- - を加えてリクエストを送信すると、サーバーは簡単にリクエストを受け入れ、有効な情報を提供します。
はい、有効な SQL インジェクションが得られました。
もちろん、 残りの作業はsqlmap が行います。
しかし、この脆弱性により、認証トークンなしでサーバーにリクエストを行うこともできることが判明しました。
ほなほな。