📌 목차
- HTTP Parameter Pollution(HPP)이란?
- HPP 공격의 원리
- HPP의 주요 공격 기법
- HTTP Parameter Pollution의 위험성
- 방어 방법 및 대응 방안
🔍 HTTP Parameter Pollution(HPP)이란?
HTTP Parameter Pollution (HPP)은 웹 요청에서 동일한 파라미터를 여러 번 중복하여 보내, 서버의 해석 방식 차이를 악용하는 공격 기법이다.
이 공격은 웹 애플리케이션이 중복된 요청 파라미터를 다루는 방식이 일관되지 않거나, 필터링 로직을 우회할 때 발생한다.
공격자는 이를 통해 보안 정책을 우회하거나, 원하는 파라미터 값을 삽입하여 시스템을 조작할 수 있다.
✅ 주요 공격 목적
✔️ 필터링 우회: 보안 규칙을 우회하여 악성 데이터 삽입
✔️ API 조작: 다중 파라미터 사용을 악용하여 인증 우회
✔️ SQL Injection, XSS 연계 공격: 입력 검증 로직을 우회하여 취약점 악용
⚙️ HPP 공격의 원리
HPP 공격은 서버 또는 클라이언트의 HTTP 요청 해석 방식이 다를 때 발생한다.
웹 애플리케이션에서 동일한 키를 가진 여러 개의 파라미터를 다루는 방식이 다르면 공격이 가능하다.
📌 예제: 일반적인 요청
GET /search?category=books HTTP/1.1
이 요청은 category 값으로 books을 전달한다.
📌 HPP 공격 요청 예시
GET /search?category=books&category=electronics HTTP/1.1
서버는 위와 같은 요청을 다르게 해석할 수 있다:
- 첫 번째 값만 처리 (category=books)
- 마지막 값만 처리 (category=electronics)
- 모든 값을 배열로 저장 (category=[books, electronics])
이러한 해석 차이를 악용하면 보안 정책을 우회하거나 시스템을 조작할 수 있다.
🚨 HPP의 주요 공격 기법
1️⃣ 쿼리 문자열(Query String) 조작
📌 공격 방식
- 다중 파라미터를 이용해 요청을 변조
- 특정 필터링 로직을 우회하여 악성 데이터 삽입
✅ 공격 예시
GET /login?user=admin&user=hacker HTTP/1.1
🚨 결과:
- 일부 서버는 admin을 처리하지만, 다른 서버는 hacker를 인식하여 인증 우회 가능
2️⃣ POST 요청 조작
📌 공격 방식
- application/x-www-form-urlencoded 형식에서 동일한 키를 여러 번 삽입
- 서버의 입력 해석 방식 차이를 악용
✅ 공격 예시
POST /transfer HTTP/1.1
Host: bank.com
Content-Type: application/x-www-form-urlencoded
amount=1000&amount=10
🚨 결과:
- 일부 서버는 첫 번째 amount=1000을 적용하고,
- 다른 서버는 마지막 amount=10을 적용하여 금액 조작 가능
3️⃣ HTTP 헤더 조작
📌 공격 방식
- 다중 HTTP 헤더를 이용해 웹 애플리케이션의 로직을 속임
- 예를 들어, X-Forwarded-For 헤더를 조작하여 IP 기반 접근 제어 우회
✅ 공격 예시
GET /admin HTTP/1.1
Host: secure.com
X-Forwarded-For: 192.168.1.100
X-Forwarded-For: 127.0.0.1
🚨 결과:
- 일부 서버는 첫 번째 IP(외부 사용자)만 처리,
- 다른 서버는 마지막 IP(내부 관리자)만 인식하여 접근 권한을 부여
⚠️ HTTP Parameter Pollution의 위험성
✅ 보안 위협
- 🛡️ 인증 우회: 필터링 로직을 속여 관리자 페이지 접근 가능
- 🎭 데이터 변조: API 조작을 통해 결제, 사용자 정보 변경
- 🚀 SQL Injection/XSS 연계 공격: 필터링 우회하여 악성 코드 삽입
- 🔓 보안 정책 우회: 방화벽, WAF(Web Application Firewall) 무력화
✅ 실제 발생 사례
- 2011년 PayPal HPP 취약점
- HPP를 통해 보안 필터를 우회하여 사용자 정보 변조 가능
- 2020년 여러 금융 서비스에서 발견된 취약점
- 중복된 파라미터 해석 차이를 이용해 금액 조작
🔐 방어 방법 및 대응 방안
✅ 1. 중복 파라미터 허용 금지
- 다중 동일 파라미터 요청을 차단하도록 서버 설정 변경
- 예: Apache mod_security 또는 Nginx strict_params 적용
✅ 2. 입력 검증 강화
- 정규식을 이용하여 중복된 파라미터를 필터링
- 화이트리스트 기반 파라미터 검증 적용
✅ 3. 웹 애플리케이션 방화벽(WAF) 사용
- SQL Injection, XSS 등과 연계된 HPP 공격 탐지
✅ 4. 보안 패치 적용
- 최신 보안 패치 및 프레임워크 업데이트 적용
✅ 5. 보안 테스트 수행
- Burp Suite, OWASP ZAP과 같은 도구를 사용하여 취약점 테스트
📌 해시태그
#HTTP #HPP #ParameterPollution #웹보안 #해킹 #웹방화벽 #보안취약점 #API보안
'보안' 카테고리의 다른 글
🔓 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 Request Smuggling: 서버와 프록시 간 요청 해석 차이를 악용한 보안 공격 🚨 (0) | 2025.02.19 |