[TryHackMe] Race Conditions Lab

코준·2025년 6월 27일

TryHackMe

목록 보기
20/32

학습한 내용을 바탕으로 Race를 발생시켜 악용해보자.

각 유저의 정보로 로그인해서 계정 중 하나의 계좌를 1000달러 이상으로 만들면 된다.

4621 유저는 100달러를 가지고 있고 두 유저에게 송금할 수 있다.

5달러를 보내고자 하니 0.25달러의 수수료가 청구된다.

송금 탭의 리퀘스트를 잡아보니 쿠키가 나온다. 5달러를 6282 유저로 보내고 리퀘스트를 보자.

뭔가 순서대로 계산해서 빠져나가는 것 같다.

90달러를 20 그룹을 보냈는데

몇 개는 보내졌고 몇 개는 보내지지 않았나보다.

그도 그럴게 입력할 때 receiver_amount를 4.75로 맞지 않게 입력했기 때문 같다. 다시 해보자.

70달러를 보내보자

이번에도 몇 개는 갔지만 몇 개는 안 갔나보다. 보자하니 2개만 간 것 같다.

이번엔 6282 유저에서 9317 유저로 보내보자.

보낼 수 있는 최대 금액으로 보내보자.

그룹에서 1번만 송금이 되고 말았나보다. 수월하게 진행되고 있는 것은 아니나, 총 300달러여야 하는 계좌들의 합이 300달러를 넘었다. 몇 번 더 하면 될 것 같다.

9317 유저에서 4621 유저에게 잔액보다 더 큰 금액을 보내보자.

더 큰 금액을 보내보니 성공했다.

21개의 리퀘스트를 병렬로 요청하여 동시에 도착한 리퀘스트가 Gunicorn의 서버 에러를 발생시킨 것으로 보인다.

처음부터 보내는 금액과 남은 금액을 맞춰서 보냈다면 몇 번 안에 끝냈을 것 같은데, Repeater에서 리퀘스트 내용을 바꿔 보내는 과정에서 실수해 시행착오가 있었다.

실제 해킹 중이었다면 보기좋게 실패한 느낌이지 않았을까

profile
Hi !

0개의 댓글