📌 목차
- Host Header Injection이란?
- 공격 원리와 작동 방식
- 주요 Host Header Injection 공격 기법
- 보안 위협과 실제 사례
- 방어 방법 및 대응 방안
🔍 Host Header Injection이란?
Host Header Injection은 클라이언트가 전송하는 Host 헤더 값을 조작하여 웹 서버의 요청 처리를 속이는 공격 기법이다.
일반적으로 웹 애플리케이션은 Host 헤더를 사용하여 요청된 도메인을 식별하고 처리한다.
공격자는 이를 악용하여 SSRF(Server-Side Request Forgery), 캐시 포이즈닝(Cache Poisoning), 오픈 리다이렉트(Open Redirect) 등의 공격을 수행할 수 있다.
✅ 주요 공격 목적
✔️ SSRF 수행: 내부 네트워크로 요청을 보내 민감한 데이터 접근
✔️ 피싱 및 리다이렉트: 악성 사이트로 사용자를 유도
✔️ 캐시 조작(Cache Poisoning): 웹 서버의 캐시를 변조하여 악성 콘텐츠 제공
⚙️ 공격 원리와 작동 방식
Host Header Injection은 웹 서버가 Host 헤더 값을 신뢰하는 경우 발생한다.
공격자는 의도적으로 조작된 Host 헤더를 삽입하여 서버가 잘못된 요청을 수행하도록 유도할 수 있다.
📌 일반적인 HTTP 요청
GET / HTTP/1.1
Host: example.com
서버는 example.com에 대한 요청으로 처리한다.
📌 조작된 Host Header Injection 예제
GET / HTTP/1.1
Host: attacker.com
📌 공격 결과
- 서버가 attacker.com을 신뢰하면 공격자가 설정한 악성 사이트로 리디렉트 가능
- 내부 API 서버에 요청을 보낼 수도 있음
🚨 주요 Host Header Injection 공격 기법
1️⃣ SSRF(Server-Side Request Forgery) 유도
📌 공격 방식
- 서버가 Host 헤더 값을 내부 API 호출에 사용하면 SSRF 발생 가능
✅ 공격 예시
GET /api/data HTTP/1.1
Host: 127.0.0.1
🚨 결과:
- 내부 API(127.0.0.1)로 요청을 보내 관리자 패널 접근 또는 데이터 탈취 가능
2️⃣ 캐시 포이즈닝(Cache Poisoning)
📌 공격 방식
- 공격자가 Host 헤더를 조작하여 웹 서버의 캐시를 변조
✅ 공격 예시
GET /index.html HTTP/1.1
Host: attacker.com
🚨 결과:
- attacker.com이 캐시되어 다른 사용자가 악성 콘텐츠를 받게 됨
3️⃣ 오픈 리다이렉트(Open Redirect) 및 피싱 공격
📌 공격 방식
- Host 헤더를 조작하여 사용자를 피싱 사이트로 유도
✅ 공격 예시
GET /login HTTP/1.1
Host: attacker.com
🚨 결과:
- 사용자가 attacker.com에 로그인하게 되어 자격 증명 탈취 가능
⚠️ 보안 위협과 실제 사례
✅ 보안 위협
- 🛡️ 내부 시스템 공격(SSRF): 내부 서버로 요청을 보내 비공개 데이터 탈취
- 🎭 사용자 세션 탈취: 피싱 사이트로 유도하여 로그인 정보 가로채기
- 🚀 캐시 변조: 공격자가 웹 서버의 응답을 변조하여 악성 콘텐츠 주입
- 🔓 도메인 기반 접근 제어 우회: 특정 도메인에서만 작동하는 기능 우회 가능
✅ 실제 발생 사례
- 2013년 PayPal Host Header Injection 취약점 발견
- 공격자가 Host 값을 조작하여 내부 API 요청 수행 가능
- 2019년 여러 웹 애플리케이션에서 SSRF 발생
- AWS 메타데이터 서버(169.254.169.254)에 접근하여 인증 정보 탈취
🔐 방어 방법 및 대응 방안
✅ 1. Host 헤더 검증 적용
- 신뢰할 수 있는 도메인 리스트 화이트리스트 적용
- 예제 (Nginx 설정):
if ($host !~* ^(www\.example\.com|example\.com)$) {
return 400;
}
✅ 2. 내부 네트워크 보호(SSRF 방지)
- 방화벽 설정을 통해 내부 네트워크 요청 제한
- 예제 (AWS WAF 설정):
{
"Rules": [
{
"RuleName": "BlockSSRF",
"Conditions": [
{
"Type": "HostHeader",
"Value": "169.254.169.254"
}
],
"Action": "BLOCK"
}
]
}
✅ 3. X-Forwarded-Host 헤더 필터링
- 프록시 및 CDN이 X-Forwarded-Host를 허용하지 않도록 설정
✅ 4. 웹 애플리케이션 방화벽(WAF) 사용
- Host 헤더 변조 탐지 및 차단
✅ 5. 보안 테스트 수행
- Burp Suite, OWASP ZAP을 이용한 취약점 점검 수행
📌 해시태그
#HTTP #HostHeaderInjection #SSRF #웹보안 #해킹 #보안취약점 #서버보안 #리다이렉트 #API보안
'보안' 카테고리의 다른 글
🔓 BOLA 공격(Broken Object Level Authorization): 인증 취약점을 악용한 데이터 탈취 🚨 (0) | 2025.02.20 |
---|---|
🚨 GraphQL 공격: Introspection 쿼리를 이용한 내부 데이터 구조 유출 🔍 (0) | 2025.02.20 |
🚨 CORS Misconfiguration Exploitation: 취약한 CORS 설정을 악용한 데이터 탈취 공격 🔓 (1) | 2025.02.20 |
🛑 HTTP Parameter Pollution (HPP): 동일한 요청 파라미터를 활용한 보안 우회 공격 🚨 (0) | 2025.02.19 |
🚨 HTTP Request Smuggling: 서버와 프록시 간 요청 해석 차이를 악용한 보안 공격 🚨 (0) | 2025.02.19 |