MySQL ページのセキュリティ上の欠陥を見つけようとしています。これは、SQL について学習するクラスの課題です。テキストボックスを介して、クエリを送信し、正しいデータセットが返されるかどうかを確認するためのデータベースへのアクセスが与えられます。彼らに何か悪意のあることができるかどうかを知りたいのです。
これはSHOW GRANTS
クエリの結果です:
Grants for user@localhost
GRANT USAGE ON *.* TO 'user'@'localhost' IDENTIFIED BY PASSWORD 'the password'
GRANT SELECT ON `server\_dir`.* TO 'user'@'localhost'
GRANT SELECT ON `server\_dir\_ans`.* TO 'user'@'localhost'
誰かがこれらのGRANT
ステートメントの意味を説明できますか? *.*
ととは何GRANT USAGE
ですか? このサイトを壊すには、他に何ができますか?
サイト自体はPHPで書かれています。
The Rook への応答として、実行すると:
UPDATE mysql.user set Password = password("hacked");
FLUSH PRIVILEGES;
私は戻ってきます:
Error Number: 1142. UPDATE command denied to user 'user'@'localhost' for table 'user'
Error Number: 1227. Access denied; you need the RELOAD privilege for this operation
思ったとおり、ユーザーにはこれを行うために必要な権限がないようです。それとも私は何かを誤解していますか?