본문 바로가기

[Wargame Write-up]/WebGoat

[WebGoat] [AJAX Security] Insecure Client Storage

[STAGE 1]


쿠폰 번호를 알아내야 한다.




Purchase 버튼 부근을 보면, isValidCoupon(field1.value) 라는 함수를 호출하고 있다.


위쪽에는 clientSideValidation.js라는 파일이 보인다. 저 파일에 함수가 정의되어 있을 것이다.




coupons라는 배열과 아까 본 isValidCoupon, decrypt 함수가 보인다.


isValidCoupon 함수에서 decrypt 함수를 호출해 coupons의 각 요소를 복호화하여 비교하는 것을 보니,


coupons 배열은 암호화된 배열이다.




개발자 도구의 console을 이용하여, coupons의 각 요소를 복호화 한 결과를 볼 수 있다.


이 중 하나를 입력하자.




가장 앞에 있는 platinum을 입력하니 Clear 되었다.




[STAGE 2]


다음은 전 품목을 무료로 구입하라는 것이다.




지불해야 하는 금액인 $499.49를 찾아보면, 다음과 같이 input 태그의 value로 들어 있는데,




이것을 아래처럼 0으로 바꿔주자.




그 후, 구매 버튼을 누르면 Clear