1. ホーム
  2. mysql

[解決済み] メルマガデータベースに「OR 1=1/*」のSQLインジェクションを発見

2022-03-11 04:25:24

質問

ニュースレター購読者データベースの "e-mail" フィールドに次のようなものがありました。 ' OR 1=1/*

SQLインジェクションであることはわかるのですが、それだけなんです。少しググってみましたが、何をしようとしているのか、まだはっきりしません。これは11月初旬に発生したもので、私の知る限り、その時期に障害は発生していません。この人が何をしようとしていたのか、親切な方々は教えてくれますか?彼がやろうとしていたことを達成できたかどうかを知る方法はあるのでしょうか?

ほぼ何も知らないので心配です :(

解決方法は?

'OR 1=1 は、何があってもクエリを成功させようとするものです。
その /* は複数行のコメントを開始しようとするもので、クエリの残りは無視されます。

例として、次のようなものがあります。

SELECT userid 
FROM users 
WHERE username = ''OR 1=1/*' 
    AND password = ''
    AND domain = ''

をエスケープせずにユーザー名フィールドに入力すると、ご覧のとおりです。 ' ユーザがどのような認証情報を渡したとしても、クエリはシステム内のすべてのユーザ ID を返し、攻撃者にアクセスを許可することになります (admin が最初のユーザであれば、admin へのアクセスも許可されるでしょう)。また、クエリの残りの部分がコメントアウトされていることにもお気づきでしょう。 /* を含む、本当の ' .

データベースでその値を確認できるということは、その値がエスケープされ、その特定の攻撃は成功しなかったということです。しかし、他の試みが行われたかどうかを調査する必要があります。