[Hackthebox] - Diogenes' Rage Writeup(문제풀이)
문제 개요 Race Condition 처음에 페이지에 접속하면 위와 같이 나옵니다. 그리고 소스코드가 제공됐습니다. 소스코드 분석 중요한 부분만 보도록 하겠습니다. 아래 소스코드는 물건을 구매할 때 실행되는 API 입니다. 이곳에서 중요한 부분은 db.registerUser 부분입니다. 아래 쿠폰 발급 받을 때도 registerUser를 하지만, 이곳에서도 registerUser을 한다는 것이 중요한 부분입니다. 그 이유에 대해서는 나중에 말씀드리겠습니다. 그리고 아래 코드는 쿠폰을 발급받았을 때 실행되는 API 입니다. 이곳에서 주요 깊게 봐야할 점은 만약 user 세션 값이 존재한다면, 별도로 registerUser 를 하지 않고, 쿠폰을 가져와서 쿠폰에 적힌 값만큼 addBalance를 한다는 점입..