私はsqlmapの「リスク」パラメーターについて読んでいましたが、ドキュメントにはリスク3レベルでテーブルを更新できるという情報が含まれています。どういう意味ですか?私が理解している限り、これはアプリの更新インジェクション、またはアプリのロジックがテーブルを更新する場合に発生する可能性があります。私は正しいですか?または、sqlmapを使用しているときに、selectクエリでもテーブルを誤って更新する可能性がありますか?ありがとう。
1つの結果が削除されるアクションに注入の可能性があるとしましょう。
DELETE FROM users WHERE userId=1;
リスクレベルが1または2の場合、1人のユーザーが削除される可能性があります。
リスクレベル3はOR
を使用しており、意図したよりも多くの行に影響を与える可能性があります。
DELETE FROM users WHERE userId=1 OR 1=1;
リスク1と2がデータベースレコードを削除または更新する可能性がないわけではありません。むしろ、その影響の範囲は限定されている可能性があります。リスク3は、アプリケーションを効果的に活用する前に、アプリケーションを破壊する(または、混乱によってアプリケーションの存在を知らせる)可能性が高くなります。