반응형
📌 목차
- HTTP Request Smuggling이란?
- 공격 원리와 작동 방식
- 주요 공격 기법 (CL.TE, TE.CL)
- HTTP Request Smuggling의 위험성
- 방어 방법 및 대응 방안
🕵️♂️ HTTP Request Smuggling이란?
HTTP Request Smuggling(HTTP 요청 스머글링)은 서버와 프록시 간의 요청 해석 차이를 악용하여 공격자가 악의적인 요청을 삽입하는 기법이다.
이 공격은 주로 리버스 프록시(Reverse Proxy)나 로드 밸런서(Load Balancer)를 사용하는 웹 애플리케이션에서 발생하며,
서버와 프록시가 HTTP 요청의 길이를 해석하는 방식이 서로 다를 때 공격이 가능하다.
주요 목적
✔️ 세션 하이재킹: 다른 사용자의 요청을 가로채거나 변조
✔️ 캐시 중독: 악성 콘텐츠를 캐시에 주입
✔️ 방화벽 우회: 보안 시스템을 속여 필터링을 우회
⚙️ 공격 원리와 작동 방식
HTTP 요청을 해석하는 방법은 보통 두 가지 방식이 있다.
- Content-Length(CL) 헤더를 사용한 길이 지정
- Transfer-Encoding: chunked(TE) 헤더를 이용한 청크 방식
서버와 프록시가 각각 다르게 해석하면 공격이 가능하다.
예를 들어,
- 프록시는 Content-Length를 우선 해석하고,
- 백엔드 서버는 Transfer-Encoding을 우선 해석하는 경우
이 차이를 이용하면 하나의 요청 안에 추가적인 숨겨진 요청을 삽입할 수 있다.
🚨 주요 공격 기법 (CL.TE, TE.CL)
1️⃣ CL.TE(Content-Length 우선 처리, Transfer-Encoding 후 처리)
📌 공격 방식
- 프록시는 Content-Length를 신뢰하여 요청을 완전히 수신했다고 판단
- 그러나 백엔드 서버는 Transfer-Encoding: chunked를 기준으로 추가 데이터를 읽음
- 그 결과 숨겨진 두 번째 요청이 백엔드 서버에 전달됨
✅ 공격 예시
POST / HTTP/1.1
Host: vulnerable.com
Content-Length: 13
Transfer-Encoding: chunked
5
SMUGG
3
LED
0
GET /admin HTTP/1.1
Host: vulnerable.com
🚨 결과: 백엔드 서버는 GET /admin 요청을 처리하지만, 프록시는 이를 인식하지 못함
2️⃣ TE.CL(Transfer-Encoding 우선 처리, Content-Length 후 처리)
📌 공격 방식
- 프록시는 Transfer-Encoding: chunked를 신뢰하여 데이터를 수신
- 하지만 백엔드 서버는 Content-Length를 기반으로 요청을 해석
- 이로 인해 프록시가 처리한 데이터와 백엔드의 해석이 달라지면서 공격자가 추가 요청을 보낼 수 있음
✅ 공격 예시
POST / HTTP/1.1
Host: vulnerable.com
Transfer-Encoding: chunked
Content-Length: 6
0
GET /admin HTTP/1.1
Host: vulnerable.com
🚨 결과: GET /admin 요청이 정상적인 요청으로 처리됨
⚠️ HTTP Request Smuggling의 위험성
✅ 보안 위협
- 🔓 세션 탈취: 로그인된 사용자의 요청을 가로채기 가능
- 🎭 사용자 스푸핑: 요청을 변조하여 다른 사용자의 권한을 탈취
- 🚀 방화벽 우회: 보안 장비가 정상적인 요청으로 인식하여 차단 불가
- 💣 DDoS 공격: 서버에 추가 요청을 삽입해 과부하 유발
✅ 실제 발생 사례
- 2019년 Netflix 및 여러 웹사이트에서 발견된 취약점
- Netflix는 HTTP Request Smuggling을 통해 요청 조작이 가능하다는 취약점을 공개
- 2020년 Amazon에서 발생한 공격
- 공격자가 HTTP Request Smuggling을 이용해 API를 우회하고 내부 데이터에 접근
🔐 방어 방법 및 대응 방안
✅ 1. 프록시 및 서버의 요청 해석 방식 일관화
- Content-Length와 Transfer-Encoding을 혼합 사용하지 않도록 설정
- 보안 패치를 적용하여 CL.TE, TE.CL 취약점을 차단
✅ 2. 웹 애플리케이션 방화벽(WAF) 적용
- HTTP 요청에서 Transfer-Encoding: chunked가 사용될 때 경고
✅ 3. 최신 보안 패치 적용
- Apache, Nginx 등 웹 서버의 최신 패치 적용
✅ 4. Penetration Testing 수행
- Burp Suite 등 보안 툴을 사용하여 테스트 수행
#HTTP #RequestSmuggling #보안취약점 #웹보안 #프록시 #해킹 #웹방화벽 #서버보안
반응형
'보안' 카테고리의 다른 글
🔓 BOLA 공격(Broken Object Level Authorization): 인증 취약점을 악용한 데이터 탈취 🚨 (0) | 2025.02.20 |
---|---|
🚨 GraphQL 공격: Introspection 쿼리를 이용한 내부 데이터 구조 유출 🔍 (0) | 2025.02.20 |
🚨 CORS Misconfiguration Exploitation: 취약한 CORS 설정을 악용한 데이터 탈취 공격 🔓 (1) | 2025.02.20 |
🛑 Host Header Injection: 서버 측 요청 위조(SSRF) 및 보안 우회 공격 🚨 (0) | 2025.02.19 |
🛑 HTTP Parameter Pollution (HPP): 동일한 요청 파라미터를 활용한 보안 우회 공격 🚨 (0) | 2025.02.19 |