반응형
[pwnable.kr] Toddler’s Bottle - blackjack
millionares. 백만장자에게 flag를 준다고 합니다.
들어가면 화려한 아스키아트를 볼 수 있습니다.
게임 진행, 룰 확인, 게임 나가기 3가지 기능이 있습니다. 룰을 보고 게임을 좀 해봤는데 1승 4패였습니다ㅜㅜ
각설하고, 링크 들어가보면 긴 C 코드가 있습니다. 아스키아트가 많아서 빠르게 읽을 수 있었습니다.
랜덤 카드 생성, 게임 실행 후 이러쿵 저러쿵 초기 셋팅하는 부분을 지나고 났는데 이상한 부분을 발견했는데요.
베팅 금액이 가진 돈보다 큰가? 검사해서 베팅 금액이 크다면 입력을 다시 받고, 다시 검사해야하는 게 맞습니다. 하지만 이 코드에서는 if문 안에서 다시 입력을 받기 때문에 가지고 있는 돈보다 많은 양의 돈을 베팅할 수 있는 것입니다.
이겼을 때 원래 가진 돈 + 베팅 금액을 받기 때문에, 크게 베팅하고 이긴다면 백만장자가 될 수 있습니다.
그럼 딜러의 Hit, Stay 알고리즘까지 알았으니, 운만 따라주면 백만장자가 되어 flag를 얻을 수 있겠네요.
보유 금액보다 큰 금액을 베팅합니다.
처음에는 거절하지만, 두 번째 베팅은 값에 상관없이 베팅됩니다.
운도 따라줍니다. 결과는?
이겼습니다. 이제 flag가 나올까요?
flag가 위에 나오게 됩니다. 감사합니다.
반응형
'System&Write up > Pwnable.kr' 카테고리의 다른 글
[pwnable.kr] Toddler's Bottle - cmd1 (0) | 2017.12.17 |
---|---|
[pwnable.kr] Toddler's Bottle - lotto (1) | 2017.12.15 |
[pwnable.kr] Toddler's Bottle - random (0) | 2017.11.28 |
[pwnable.kr] Toddler's Bottle - passcode (0) | 2017.11.24 |
[pwnable.kr] Toddler's Bottle - flag (0) | 2017.11.23 |