피드로 돌아가기
Price Manipulation via Product ID Mismatch in Checkout API (IDOR)
Dev.toDev.to
Security

Client-side 암호화 맹신으로 인한 IDOR 기반 가격 조작 취약점 분석

Price Manipulation via Product ID Mismatch in Checkout API (IDOR)

Wansu2026년 7월 1일3intermediate

Context

클라이언트가 전송하는 product_id와 price 필드 간의 정합성을 서버에서 검증하지 않는 구조적 결함 존재. Client-side Encryption을 통해 데이터 노출을 방지하려 했으나, 키 노출로 인한 페이로드 위변조 가능성이 상존하는 아키텍처.

Technical Solution

  • Chrome DevTools 기반의 클라이언트 코드 분석을 통한 IV 및 Encryption Key 추출
  • Burp Suite를 활용한 암호화 페이로드의 복호화 및 product_id 조작 프로세스 수행
  • 조작된 데이터를 재암호화하여 서버로 전송함으로써 비즈니스 로직 우회 성공
  • 서버 측에서 DB의 Source of Truth를 기반으로 가격을 재계산하는 Server-side Validation 로직 도입
  • Client-side Encryption을 보안 경계가 아닌 단순 데이터 은닉 수단으로 재정의
  • 상품 ID와 가격 불일치 발생 시 탐지하는 Anomaly Detection 로깅 체계 구축

1. 결제 및 가격 계산 로직에서 클라이언트가 전달하는 금액 필드를 절대 신뢰하지 않는가?

2. 모든 가격 결정 프로세스가 서버 내부의 DB 데이터를 기준으로 재계산되는 구조인가?

3. Client-side Encryption/Obfuscation을 유일한 보안 계층으로 설정하고 있지는 않은가?

4. 요청 파라미터 간의 논리적 정합성(예: 상품ID-가격-수량)을 검증하는 로직이 포함되었는가?

원문 읽기