背景情報:学校のタスクとしてのSQLインジェクション。ログインバイパス。 2つの入力フィールド名とパスワードを指定します。解決ボタンで確認します。
情報私が持っているもので、見つけることができたもの:
INPUT
、password:INPUT
)SELECT name,password FROM login WHERE name='xyz' and password='xyz'
質問: SQLインジェクションを介して最終的にシステムに正常にログインするために、私が試す可能性は何ですか?
私が試した入力の例:
名前:myID
[ヒントが示すIDです]
パスワード:' OR '1'='1
名前:myID' OR '1'='1' --
パスワード:whatever
名前:myID' AND NOT ('1'='2
パスワード:foo') AND name='myID' LIMIT 1 #
エラーの例:
名前:myID' OR 1=1
パスワード:whatever
' '
に入力されるため、構文エラーになります認証メカニズムはバックエンドで実装されているため、多くのセキュリティ専門家が提供する2つの主要なサービスがあります。
これらのサービスの詳細については、会社、組織、およびこれらの主要なサービスが提供される方法の明白なビジネスモデルであるため、詳しく説明しませんが、技術的な理解のために、サービスの種類に依存することを考慮する必要があります。テストケースを準備する必要があります。
たとえば、ソースコードにアクセスできない場合があり、特定のエントリポイント(この場合はログインエントリ)を攻撃するための時間とリソースが与えられていても、攻撃者を止めてはなりません。入力する必要があるものはソースコードによって異なりますが、ブラックボックスのセキュリティコンサルタントとして、バックエンドとなるもののアプローチの試行錯誤の基礎を理解し、それに応じて試行を準備する必要があります。
このアプローチは非常に時間がかかりますが、Burp Suite ' Intruder 'によって自動化でき、 可能な入力のリスト を侵入者に供給して、タスクを自動化できます。君は。追加の認証バイパスは ここで説明 です。発生したエラーについては、次の項目をすべて確認してください。
時々、多くのテスターは過大評価して、admin/adminが機能するか ここに提供されたリストが機能するか かどうかを確認する単純な方法を決して試みません。それも、正確なソースコードを知る必要はなく、発生するすべてのエラーから列挙してバイパスを構築しようとする試行錯誤のアプローチに依存します。両方のフィールドでadmin' or '1'='1'--
を試して、リストに記載されている他のフィールドと一緒に例を確認してください。