반응형
오늘의 문제는 blackjack이다.
문제에서 주어진 링크를 들어가보면 위와 같이 blackjack 게임의 코드가 나온다.
문제에서 주어진 위치로 접속해주면 블랙잭 게임에 들어갈 수 있다.
게임에 들어가서 내가 갖고 있는 돈보다 더 많이 베팅을 하더라도 게임을 진행할 수 있고, 그러고 나서 s를 누르면서 게임을 진행하면 플래그가 나온다. 이유를 알아보도록 하자!
int betting() //Asks user amount to bet
{
printf("\n\nEnter Bet: $");
scanf("%d", &bet);
if (bet > cash) //If player tries to bet more money than player has
{
printf("\nYou cannot bet more money than you have.");
printf("\nEnter Bet: ");
scanf("%d", &bet);
return bet;
}
else return bet;
} // End Function
아까 블랙잭의 코드를 확인해보면, 배팅한 값이 캐시보다 클 경우에 관련한 if문이 있는데, 이게 여러번 반복되는게 아니라 한번만 if문을 실행하고 끝난다. 때문에 배팅할 값을 내가 갖고 있는 돈보다 크게 넣더라도 값이 그대로 넘어가게 된다!
flag: YaY_I_AM_A_MILLIONARE_LOL
반응형
'포너블(pwnable) > CTF(pwnable.kr)' 카테고리의 다른 글
[Toddler's Bottle] cmd1 문제 풀이 (0) | 2021.05.18 |
---|---|
[Toddler's Bottle] lotto 문제풀이 (0) | 2021.05.07 |
[Toddler's Bottle] coin1 (0) | 2021.05.06 |
[Toddler's Bottle] mistake 문제풀이 (0) | 2021.04.28 |
[Toddler's Bottle] leg 문제풀이 (0) | 2021.04.28 |
댓글