CVE-2021-21311 [adminer Server-Side Request Forgery]
요약 : 로그인 시 에러메시지를 통해 SSRF Exploit 가능
오픈소스 데이터베이스 관리 툴인 Adminer는 단일 PHP페이지로 구성되어있다.
4.7.9 버전부터 패치가 되었음 (patch commit)
Adminer는 각 데이터베이스에 로그인할 수 있는 모듈을 각각 별도로 제작함
취약점이 발생되는 구간은 ElasticSearch와 Clickhouse 로그인 모듈로, 로그인 오류 시 나타나는 에러메시지를
통해서 내부 서버의 자원에 접근할 수 있음
취약한 버전
Adminer 4.0.0 ~ 4.7.8
선행조건
없음
분석
1. 취약한 환경 구성
Victim : ubuntu 22.04 / apache 2.4.52 / php 8.1.2 / Adminer 4.7.8 + tomcat
SSRF 취약점을 검증하기 위해 외부로 open되지 않은 내부 서비스를 임의로 생성해줌 (tomcat)
2. Exploit
Exploit 시나리오는 아래와 같음
- 공격자가 들어오는 request를 임의의 host로 redirect해 줄 수 있는 개인 서버(A)를 오픈
- Victim 서버의 취약한 Adminer를 찾아 공격자의 서버(A)로 로그인을 하게 함
- Adminer는 공격자의 서버로 접속을 시도, 공격자의 서버는 해당 request를 임의의 host로 redirect해 줌
공격자가 들어오는 request를 redirect해주는 서버를 open한다
이후, 공격자가 open해둔 redirect 서버로 연결 시도
adminer가 공격자의 redirect서버로 접근, redirect되어 localhost:8080을 접근하게 됨
Victim 서버 내부의 open되어있지 않은 서비스로 접근했음을 확인
Mitigation
- Application 버전 업그레이드 (해당 취약점의 경우 4.7.9에 patch됨)