• OS
  • 물리서버
  • 보안
  • 네트워크
  • 클라우드
  • 자격증
카테고리

12.1 Business_logic_error

2025. 1. 22. 12:56·Security/CTF
반응형

목표

서버의 비즈니스 로직 취약점을 이용하여 잔액을 조작하고, 고가의 플래그를 성공적으로 구매.


문제 분석

애플리케이션 동작

  • 상품 구매 기능: 사용자는 잔액 내에서만 상품 구매 가능.
  • 플래그 가격: 플래그는 매우 높은 가격(예: 9,999,999원)으로 설정.
  • 기본적으로 제공된 잔액으로는 플래그 구매 불가.

초기 확인

  • 정상적인 구매 시도:
    • 잔액 부족 시 구매 불가 메시지 출력.
    • 서버에서 잔액을 검증하는 로직 존재.

공격 과정

1. Burp Suite를 사용한 요청 가로채기

  • 분석 대상: /store/{item} 경로로 전송되는 POST 요청.
  • 요청 내용:
     
     
    • quantity: 구매 수량을 나타내며, 기본적으로 양수 값(예: 1)으로 설정.
    • 요청 차단 시, 서버는 잔액 부족을 이유로 구매를 거부.
POST /store/flag HTTP/1.1
Host: war.knock-on.org:10016
Content-Length: 10
Content-Type: application/x-www-form-urlencoded

quantity=1

2. 음수 값 사용을 통한 취약점 탐지

  • 테스트: quantity 값을 음수로 설정:
     
     
  • 결과:
    • 서버는 음수 수량을 처리하지 못하고, 잔액을 차감하는 대신 증가시킴.
    • 예: 원래 잔액이 10,000원 → 음수 수량 요청 후 잔액이 수백만 원으로 증가.
quantity=-1

3. 플래그 구매

  • 잔액을 조작한 후, 다시 정상적인 요청을 통해 플래그 구매:
     
  • 결과:
    • 서버는 충분한 잔액을 확인하고, 플래그 구매 허용.
    • 플래그 획득 성공.
quantity=1

취약점 분석

취약점 유형

  • 비즈니스 로직 에러:
    • quantity 값에 대한 적절한 검증 부재.
    • 음수 값이 비정상적으로 처리되어 잔액 조작 가능.

공격 가능 원인

  1. 수량 값 검증 부족:
    • quantity 값이 음수일 경우의 처리 로직 미비.
  2. 서버 로직 결함:
    • 음수 수량이 잔액 차감이 아닌 증가로 처리됨.

결론

과정 요약

  1. 취약점 유형: 비즈니스 로직 에러.
  2. 이용된 기법: 음수 값을 이용한 잔액 조작.
  3. 사용 도구: Burp Suite를 이용한 요청 분석 및 수정.

공격 흐름

  1. Burp Suite에서 **수량 값(quantity)**을 음수로 수정.
  2. 음수 요청으로 잔액을 비정상적으로 증가.
  3. 충분한 잔액을 확보한 후 정상적으로 플래그 구매.

보안 대책

1. 입력 값 검증

  • quantity 값에 대한 철저한 검증:
    • 양수 값만 허용.
    • 범위를 벗어난 값은 에러 반환.

2. 서버 로직 개선

  • 음수 값 처리 방지:
    • 서버에서 음수 값 확인 후 차단.
    • 예외적인 값에 대한 추가 로직 구현.

3. 로깅 및 모니터링

  • 비정상적인 요청(예: 음수 값)의 탐지 및 알림.
  • 잔액 변경 및 상품 구매 내역에 대한 상세 로깅.

부록: Burp Suite 사용법

  1. Proxy 설정:
    • Burp Suite의 Proxy를 활성화하고, 브라우저를 프록시에 연결.
  2. 요청 가로채기:
    • 특정 요청을 수행한 후, Burp Suite에서 Intercept 활성화.
  3. 파라미터 수정:
    • quantity=-1 등 값을 수정.
  4. 요청 전송:
    • 수정된 요청을 Forward로 전송.

이번 사례는 입력 값 검증이 부족한 경우, 비즈니스 로직이 쉽게 악용될 수 있음을 보여줍니다. 이를 통해 입력 검증과 보안 로직 강화의 중요성을 다시 한번 확인할 수 있습니다.

반응형

'Security > CTF' 카테고리의 다른 글

12.3 Race condition  (0) 2025.01.22
12.2 IDOR  (0) 2025.01.22
8.2 SSTI - secretkey  (0) 2025.01.22
8.1 SSTI - server flag  (0) 2025.01.22
3.3 SQLi_WAF_3  (0) 2025.01.22
'Security/CTF' 카테고리의 다른 글
  • 12.3 Race condition
  • 12.2 IDOR
  • 8.2 SSTI - secretkey
  • 8.1 SSTI - server flag
wogho
wogho
    반응형
  • wogho
    눙이의 인프라 메모장
    wogho
  • 전체
    오늘
    어제
    • 분류 전체보기
      • OS
        • Linux
        • Windows Server
      • Physical Server
        • Xenserver
        • Equipment
      • Network
        • Cisco
      • Cloud
        • GCP
        • AZURE
        • AWS
      • Security
        • Basic
        • CTF
        • Solution
      • Language
      • Certificate
  • 블로그 메뉴

    • OS
    • 물리서버
    • 보안
    • 네트워크
    • 클라우드
    • 자격증
  • 링크

  • 공지사항

    • Tistory 추천 스킨 및 폰트 (hELLO & d2co⋯
  • 인기 글

  • 태그

    windows
    PowerShell
    SMB
    mdadm
    서버
    debian
    Windows Server
    MEGARAID
    윈도우서버
    네트워크
    Linux
    megacli
    데비안
    lsi
    ubuntu
    CentOS
    RAID
    리눅스
    윈도우
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
wogho
12.1 Business_logic_error
상단으로

티스토리툴바