[프리미엄] 구매 불가한 상품 결제 수행

작성자 8ug8ear 프로그램 마인리스트

WEB 종료됨(유익함) 중간 보상없음 작성일: 2022년 7월 2일 (2년 전) 마지막 업데이트일: 2022년 7월 17일 (2년 전)

취약점 유형

불충분한 인가 / 파라미터 변조

상세내용

개요

  • 서버리스트 상단에 서버를 고정 시키기 위하여 사용자가 결제하는 상품 구매제한을 임의로 해제 시켜 구매 가능한 취약점
    (※취약점 발생 url : /api/v1/internal/campaigns/get_slots)

재현 과정

[구매 가능 기간이 도래하지 않은 상품 결제 시도]

  1. 마인리스트 페이지 내의 프리미엄 메뉴에서 광고를 노출하고자 하는 기간 선택
    Description
  2. 구매 가능한 기간이 도래하지 않아 선택 불가한 상품 목록 확인
    Description
  3. [프리미엄] > [광고기간] 선택 시 Response되는 can_pay 파라미터 값을 false에서 true로 변경하여 상품 활성화 시도
    Description
  4. 상품 선택 및 결제 가능한 상태로 활성화됨을 확인 가능
    Description

[광고 가능한 서버 대수 제한 해제]

  1. 광고 가능한 서버대수가 제한되어 추가 상품 구매 불가능한 기간 확인
    Description
  2. [프리미엄] > [광고기간] 선택 시 Response되는 ①can_pay 파라미터 값을 false에서 true로 변경하여 상품 활성화 및 ②max_slot 파라미터 값을 2에서 4로 변경하여 서버대수 제한 수 증가 시도
    Description
  3. 광고 구매 가능한 서버대수가 증가하여 상품 구매가 가능한 상태로 활성화됨을 확인 가능
    Description

[타 사용자가 이미 구매한 상품 중복 결제 시도]

  1. 타 사용자가 이미 구매한 상품은 중복 구매가 불가함을 확인
    Description
  2. [프리미엄] > [광고기간] 선택 시 Response되는 ①can_pay 파라미터 값을 false에서 true로 변경하여 상품 활성화, ②max_slot 파라미터 값을 2에서 4로 변경하여 서버대수 제한 수 증가, ③ user_id 및 server_id 파라미터 값을 null으로 변경 시도
    Description
  3. 타 사용자 이미 구매한 상품을 중복 구매가 가능한 상태로 활성화됨을 확인 가능
    Description

예상되는 취약점 발생 원인

  • 특정 기간이 도래하였을 때 선착순으로 저렴하게 구매 가능한 상품을 우선적으로 선점 구매 가능
  • 타 사용자가 구매한 상품에 대한 중복 및 광고 가능한 서버 제한 해제하여 추가 구매 가능

타임라인

8ug8ear 님이 티켓을 제출했습니다. 2022년 7월 2일 (2년 전)
4064f9b2 MANAGER 님이 상태를 '제출됨'에서 '종료됨(유익함)'으로 변경했습니다. 2022년 7월 2일 (2년 전)
4064f9b2 MANAGER 님이 공개상태를 '비공개'에서 '전체공개'로 변경했습니다. 2022년 7월 2일 (2년 전)
4064f9b2 MANAGER 님이 댓글을 남겼습니다. 2022년 7월 2일 (2년 전)

프론트엔드 상에서의 데이터를 변경하면 결제가 가능한 것처럼 보일 수 있지만, 이미 백엔드 최종 결제 승인 단계에 말씀주신 내용들에 대한 검증을 진행하고 있습니다. 따라서 종료 처리하도록 하겠습니다. 감사합니다.