Помогите найти недостатки безопасности на этой странице MySQL? - PullRequest
2 голосов
/ 01 марта 2010

Я пытаюсь найти недостатки безопасности на странице 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

Как я и думал, у пользователя, похоже, нет прав, необходимых для этого.Или я что-то недопонимаю?

1 Ответ

4 голосов
/ 01 марта 2010

*.* означает все таблицы во всех базах данных.

Недостатки в безопасности произойдут в php чаще, чем в msyql, см. Эту статью в Википедии по общим вопросам: SQL-инъекция .

GRANT USAGE означает без привилегий .

...