Portswigger-High-level logic vulnerability

problem link

풀이

wiener:peter 계정을 이용해 로그인할 수 있다. 로그인하여 Lightweight l33t leather jacket 을 의도치 않은 가격으로 구매할 수 있다.

물건을 장바구니에 넣는 패킷을 잡았다. 이전 문제와는 다르게 이 패킷에서 가격을 설정하지 않는다.

Remove 버튼을 이용해 장바구니 물건 수를 음수로 바꾸고 구매해보았지만 Cart total price cannot be less than zero 라는 에러 메시지를 띄웠다.

전체 가격이 음수이면 안 되는가 하여 다른 물건을 추가해 전체 가격을 양수로 맞췄다.

결제는 되었는데, 음수로 결제한 구매해야 하는 아이템은 결제가 안 되었다.

사고싶은 아이템 수를 양수로 두고 다른 아이템을 추가해 가격을 맞추니 성공했다. 이 취약점은 물건 수를 음수로 설정할 수 있고(클라이언트 스크립트에서만 검증한다.), 전체 가격만 validation 체크를 한다는 점 때문에 발생했다.


tags: writeup, business-logic-vul, wstg-busl-01, wstg-busl-02, web hacking