MySQL File priv to SSRF/RCE
Reading time: 3 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
이 문서는 https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/의 MySQL/MariaDB/Percona 기술 요약입니다.
SQL 함수에 의한 서버 측 요청 위조 (SSRF)
SQL Out of Band 데이터 유출 탐색에서 LOAD_FILE()
함수는 네트워크 요청을 시작하는 데 일반적으로 사용됩니다. 그러나 이 함수는 작동하는 운영 체제와 데이터베이스의 시작 구성에 의해 제한됩니다.
secure_file_priv
전역 변수가 설정되지 않은 경우 기본값은 /var/lib/mysql-files/
로, 빈 문자열(""
)로 설정되지 않는 한 이 디렉토리에 대한 파일 접근이 제한됩니다. 이 조정은 데이터베이스의 구성 파일이나 시작 매개변수에서 수정이 필요합니다.
secure_file_priv
가 비활성화(""
)되고 필요한 파일 및 file_priv
권한이 부여된 경우, 지정된 디렉토리 외부의 파일을 읽을 수 있습니다. 그러나 이러한 함수가 네트워크 호출을 할 수 있는 능력은 운영 체제에 크게 의존합니다. Windows 시스템에서는 운영 체제가 UNC 명명 규칙을 이해하기 때문에 UNC 경로에 대한 네트워크 호출이 가능하며, 이는 NTLMv2 해시의 유출로 이어질 수 있습니다.
이 SSRF 방법은 TCP 포트 445로 제한되며 포트 번호 수정을 허용하지 않지만, 전체 읽기 권한으로 공유에 접근하는 데 사용될 수 있으며, 이전 연구에서 입증된 바와 같이 해시를 훔쳐 추가적인 악용을 할 수 있습니다.
사용자 정의 함수(UDF)를 통한 원격 코드 실행(RCE)
MySQL 데이터베이스는 외부 라이브러리 파일에서 사용자 정의 함수(UDF)를 사용할 수 있습니다. 이러한 라이브러리가 특정 디렉토리 내에 있거나 시스템의 $PATH
에 접근 가능하다면 MySQL 내에서 호출할 수 있습니다.
이 기술은 여러 조건이 충족되는 경우 UDF를 통해 네트워크/HTTP 요청을 실행할 수 있게 해줍니다. 여기에는 @@plugin_dir
에 대한 쓰기 접근, file_priv
가 Y
로 설정, secure_file_priv
가 비활성화되어야 합니다.
예를 들어, lib_mysqludf_sys
라이브러리 또는 HTTP 요청을 가능하게 하는 다른 UDF 라이브러리를 로드하여 SSRF를 수행할 수 있습니다. 라이브러리는 서버로 전송되어야 하며, 이는 라이브러리의 내용을 hex 또는 base64로 인코딩한 후 적절한 디렉토리에 작성하여 달성할 수 있습니다.
@@plugin_dir
가 쓰기 불가능한 경우 프로세스는 달라지며, 특히 MySQL 버전이 v5.0.67
이상인 경우 대체 경로를 사용해야 합니다.
이러한 프로세스의 자동화는 UDF 주입을 지원하는 SQLMap과 같은 도구를 통해 촉진될 수 있으며, 블라인드 SQL 주입의 경우 출력 리디렉션 또는 DNS 요청 밀반입 기술을 활용할 수 있습니다.
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.