D-09
DBMS 불필요 기능 비활성화 (FILE/EXECUTE)
위험도: 상
📌 아래 내용이 표준 보고서에 포함되어야 합니다. 자신이 작성한 보고서와 대조하세요.
📋 현황 (점검 명령어 및 결과)
📄 표준 내용
# FILE 권한 확인 (로컬 파일 읽기/쓰기)
SELECT user, host, File_priv FROM mysql.user;
+------+-----------+-----------+
| root | localhost | Y | ← FILE 권한 있음
+------+-----------+-----------+
# FILE 권한 악용 예시
SELECT LOAD_FILE('/etc/passwd'); ← 서버 파일 읽기 가능!
SELECT '<?php system($_GET[cmd])?>' INTO OUTFILE '/var/www/html/shell.php'; ← 웹쉘 생성!
🔧 조치 방안 및 이행 확인
📄 표준 내용
# FILE 권한 회수 REVOKE FILE ON *.* FROM 'root'@'localhost'; # secure_file_priv 설정으로 경로 제한 # /etc/mysql/mysql.conf.d/mysqld.cnf [mysqld] secure_file_priv = /var/lib/mysql-files/ # local_infile 비활성화 SET GLOBAL local_infile = 0;