sql >> データベース >  >> RDS >> Mysql

ニュースレターデータベースで'または1=1/*SQLインジェクションが見つかりました

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

    例は

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

    ご覧のとおり、'をエスケープせずにusernameフィールドに入力したかどうかを確認できます。 ユーザーがクエリで渡したクレデンシャルに関係なく、システム内のすべてのユーザーIDが返され、攻撃者へのアクセスが許可される可能性があります(adminが最初のユーザーの場合はadminアクセスの可能性があります)。 /*が原因で、クエリの残りの部分がコメントアウトされることにも気付くでしょう。 実際の'を含む 。

    データベースに値が表示されているという事実は、その値が回避され、特定の攻撃が成功しなかったことを意味します。ただし、他の試みが行われたかどうかを調査する必要があります。



    1. MySQLデータベース開発のためのGearHost入門

    2. SQLデータベースから動的にロードされた選択オプション値に基づいてテキスト値を入力します

    3. LIKEクエリSQLがスペースを含む連結値で機能しない

    4. 空間インデックスを使用したMYSQL