본문 바로가기
포너블(pwnable)/CTF(pwnable.kr)

[Toddler's Bottle] blackjack 문제풀이

by LIZ0904 2021. 5. 7.
반응형

blackjack

오늘의 문제는 blackjack이다. 

 

blackjack 코드

문제에서 주어진 링크를 들어가보면 위와 같이 blackjack 게임의 코드가 나온다.

 

nc 접속

문제에서 주어진 위치로 접속해주면 블랙잭 게임에 들어갈 수 있다.

 

 

flag 출력

게임에 들어가서 내가 갖고 있는 돈보다 더 많이 베팅을 하더라도 게임을 진행할 수 있고, 그러고 나서 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

반응형

댓글