MySQL 페이지에서 보안 결함을 찾으려고합니다. 그것은 SQL에 대해 배우는 수업을위한 과제입니다. 텍스트 상자를 통해 데이터베이스에 액세스하여 쿼리를 제출하고 올바른 데이터 세트를 반환하는지 확인합니다. 그들이 할 수있는 악의적 인 것이 있는지 찾아보고 싶습니다.이 MySQL 페이지에서 보안 결함을 찾을 수 있습니까?
Grants for [email protected]
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
문장의 의미를 설명 할 수 :
이는 SHOW GRANTS
쿼리의 결과인가? *.*
과 GRANT USAGE
은 무엇입니까? 이 사이트를 깰 수있는 다른 방법은 무엇입니까?
사이트 자체는 PHP로 작성되었습니다. 루크에 대응
, 나는 실행할 때 :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
내가 생각, 사용자가이 작업을 수행하는 데 필요한 권한이 부족 것으로 보인다. 또는 나는 오해가 무엇입니까?
사용법이 제한되어 있으므로 모든 데이터베이스와 테이블을 수정할 수 있다고 생각되는 것으로 오인되었습니다. 이러한 특권에도 불구하고 당신은 여전히 지주가 만들어지는 방법에주의해야합니다. SQL 주입 및 "안전하지 않은 직접 개체 참조"는 여전히 직면 한 문제입니다. – rook