tmxklab
[pwnable.kr] blackjack 본문
1. 문제 확인
Hey! check out this C implementation of blackjack game!
I found it online
* http://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html
I like to give my flags to millionares.
how much money you got?
Running at : nc pwnable.kr 9009
위와 같이 서버에 접속하면 blackjack관한 문제가 주어지고 위에 blackjack소스코드가 주어진다. 문제에서는 백만장자가 되면은 flag값을 준다고 한다.
블랙잭 게임이 뭔지 궁금해서 찾아보니 포커 카드를 통해서 카드에 써있는 합이 21에 가까운 사람이 이기는 게임인 것 같다.
참고 자료)
서버에 접속해서 블랙 잭 게임을 시작하면 나의 cash가 적혀있고 베팅할 수 있는 금액을 입력받을 수 있다.
2. 접근 방법
100만 달러를 만들기 위해서 게임을 계속해서 이겨야 하는데 그럼 너무 힘들고
일단 아까 주어진 링크를 통해 소스코드에서 베팅하는 부분을 살펴보자
cash는 내가 가지고 있는 금액이고 bet는 입력받는 값이다. 잘 보면 크나 큰 로직 버그가 존재한다.
if문에서 bet가 cash보다 크면은 당연히 내가 가지고 있는 금액보다 크므로 다시 입력을 받는데 입력을 받고 바로 종료한다.
즉, 다음에 입력받는 금액에 대한 검증이 없다.
3. 문제 풀이
처음 입력 값은 500보다 큰 값을 입력하여 다시 입력받게 하고
두 번째 입력에서 1,000,000보다 크거나 같은 값을 입력하여 나의 배팅 금액을 엄청 높인다.
그렇게 해서 딜러상대로 한번만 이기면 됨
4번지고 드디어 따냈다. ㅎ히힣
4. 몰랐던 개념
'War Game > pwnable.kr' 카테고리의 다른 글
[pwnable.kr] cmd1 (0) | 2020.12.02 |
---|---|
[pwnable.kr] lotto (0) | 2020.12.02 |
[pwnable.kr] coin1 (0) | 2020.12.02 |
[pwnable.kr] shellshock (0) | 2020.11.20 |
[pwnable.kr] mistake (0) | 2020.11.20 |
Comments