[PortSwigger Web Security Academy]Lab: Excessive trust in client-side controls write up

zzsla·2023년 7월 24일
0

문제 정보

This lab doesn't adequately validate user input. You can exploit a logic flaw in its purchasing workflow to buy items for an unintended price. To solve the lab, buy a "Lightweight l33t leather jacket".

You can log in to your own account using the following credentials: wiener:peter

문제

lab에 들어가면 가상 shop 사이트가 나온다.

분석

입력 검증을 안한다.
구매 과정에서 logic flaw을 이용하면 조작된 가격으로 물건을 구매할 수 있다.
wiener : peter로 로그인 가능하다.
목표
"Lightweight l33t leather jacket" 구매한다.

물건 사는 workflow(구매과정)을 확인하기 위해 일단 burpsuite를 켜고, 주어진 아이디 : 비밀번호로 로그인한 뒤 "Lightweight l33t leather jacket"를 view details을 누르고 수량을 1개 고른 뒤 add to cart를 하고 장바구니를 확인하다.

현재가 가지고 있는 돈이 $100 밖에 없어서 가격이 $1337인 "Lightweight l33t leather jacket"을 살 수 없다. 이번에 어떤 식으로 workflow가 이루어졌는지 확인하기 위해 burpsuite의 proxy에서 HTTP history를 확인한다. 확인하다 보면 그 중 add to cart할 때 들어가면 정보를 확인하면 사진 모습이 뜰 것이다.

아래 post로 들어가는 정보에서 맨 아래를 보면 마지막에 price가 들어가는 것을 볼 수 있다. 장바구니에 들어간 "Lightweight l33t leather jacket"을 지우고, proxy로 찾은 workflow 부분을 repeater로 보낸다.
그리고 가격을 조작할 수 있으니까 해당 값을 1로 바꾼 뒤에 보낸다.

입력을 보냈으니까 장바구니에서 새로고침해 보면 가격이 $0.01가 된 "Lightweight l33t leather jacket"을 볼 수 있다.

이것을 구매하면 문제를 풀 수 있다.

profile
[README]newbi security hacker :p

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

좋은 글 감사합니다. 자주 올게요 :)

답글 달기