본문 바로가기
Security/Web

[Web] SSRF 취약점 분석 및 모의해킹 시나리오

by Kyn 2024. 11. 20.

 본 내용에서는 SSRF (Server-Side Request Forgery) 취약점을 활용한 시나리오 기반 모의 해킹을 진행하고자 합니다.
(취약점 진단을 진행한 홈페이지는 자체 제작된 페이지로, 허가 없이 이러한 공격을 시도할 경우 법적 문제가 발생할 수 있습니다.)
 

1. SSRF (Server-Side Request Forgery) 란?

SSRF 취약점은 웹 서버가 외부 또는 내부 서버에 요청을 보낼 수 있는 기능을 악용하여 악의적인 요청을 보내는 공격입니다. 이 취약점은 웹 애플리케이션이 사용자로부터 입력받은 데이터를 신뢰하고 이를 외부 리소스에 요청할 때 발생합니다.
 
주로 서버가 외부나 내부 리소스에 접근할 수 있도록 설계된 경우에 발생하며, 공격자는 사용자 입력을 통해 의도하지 않은 서버나 서비스에 요청을 보낼 수 있습니다. 예를 들어, 공격자는 웹 애플리케이션의 검색 기능을 이용해 내부망에 위치한 서버의 IP 주소를 입력하고, 웹 서버가 이를 요청하여 내부 리소스에 대한 민감한 정보를 취득하거나, 심지어 내부 시스템에 원격 명령 실행을 유발할 수 있습니다.
 

2. SSRF 모의 해킹 시나리오

사용자가 웹 페이지의 검색창에서 단어를 입력하면, 그 요청은 웹 서버로 전달됩니다. 웹 서버는 내부망에 위치한 Dic Server에 요청을 보내 단어에 대한 정보를 받아와 이를 웹 페이지에 출력합니다. 그러나 만약 사용자가 검색창에 내부망 서버의 IP 주소를 입력하면, 웹 서버는 이를 신뢰하고 해당 IP로 요청을 보냅니다. 예를 들어 사용자가 검색창에 http://<내부서버_IP>를 입력하면, 웹 서버는 이 요청을 해당 내부 서버로 전송하고, 이 요청은 내부망에 있는 다른 서버나 내부 서비스로 전달될 수 있습니다.
 
 
Step 1. "test" 단어를 검색 시, 검색 결과를 찾을 수 없는 것을 확인

 
 
Step 2. "apple" 단어를 검색 시, 단어 설명이 출력되는 것을 확인

 
 
Step 3. 검색 파라미터 “query”에 http://192.168.0.x 대역을 스캔했을 때, http://192.168.0.2 IP 의 응답 길이가 큰 것을 확인

 
 
Step 4. 검색 파라미터 “query”에 http://192.168.0.2 를 삽입해 요청했을 때, Ubuntu Apache 정보가 출력되는 것을 확인 

 
 
Step 5. Burp Suite의 Intruder 기능을 활용하여 자주 사용되는 단어들로 브루트포스 공격을 수행한 결과, img와 phpmyadmin의 응답 길이가 다른 요청들에 비해 큰 것을 확인

 
 
Step 6. 검색 파라미터 “query”에 http://192.168.0.2/phpmyadmin 를 삽입해 요청했을 때, 페이지 정보가 출력되는 것을 확인

 
 
Step 7. 검색 파라미터 “query”에 http://192.168.0.2/img 를 삽입해 요청했을 때, 디렉터리 인덱싱이 활성화된 것을 확인할 수 있으며, 아파치 버전정보가 노출되고 있는 것을 확인

 
 
Step 8. 확인된 아파치 버전은 여러 CVE 취약점에 노출되어 있으며, 이를 악용한 공격이 가능할 수 있음

Apache HTTP Server 2.4 vulnerabilities - The Apache HTTP Server Project

2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.34, 2.2.32, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16,

httpd.apache.org

 
 
Step 8. 웹 서버에 존재하는 파일 업로드 취약점과 연계하면, Ubuntu 서버에 악성 파일을 업로드할 수 있으며, ifconfig 명령어를 실행하는 PHP 파일을 업로드하고 이를 접속했을 때, 서버의 IP 정보가 출력되는 것을 확인할 수 있음

 
SSRF 취약점은 서버가 외부 또는 내부 리소스에 대한 요청을 처리하는 과정에서 발생하며, 공격자가 이를 악용해 내부망 시스템에 접근하거나 공격할 수 있는 심각한 보안 위협을 초래할 수 있습니다. 이러한 취약점을 방지하기 위해서는 입력 검증, 요청 제한, 로깅 및 모니터링과 같은 철저한 보안 대책을 적용하고, 웹 애플리케이션의 외부 요청 처리 방식을 신중하게 설계해야 합니다.

'Security > Web' 카테고리의 다른 글

[Web] XSS와 CSRF 취약점 분석 및 모의해킹 시나리오  (1) 2024.11.15

댓글