Yozzang의 해킹일기 💻
article thumbnail
Published 2022. 7. 10. 00:09
Pwnable (12. blackjack) Wargame/Pwnable
728x90

이번 포스트에서는 Pwnable의 blackjack 문제에 대해 다루겠다.

 


## 문제 해석 :

해당 문제는 블랙잭 게임 문제이다. 총 100만 달러를 획득하면 flag를 획득할 수 있는 것으로 보인다.

 

또한 문제에서 제공된 링크를 통해 해당 프로그램의 소스 코드를 확인할 수 있었고, 그 코드 중의 취약점을 통해 문제를 해결할 수 있다.

링크 : http://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html

## 문제 풀이 :

문제 코드 중 일부는 다음과 같다.

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

해당 함수는 베팅값을 설정하는 함수이다. 만약 설정된 베팅값이 캐시 보다 많으면 재설정을 하도록 되어있지만 잘못된 값에 대한 예외 처리를 따로 설정하고 있지 않아서 해당 취약점을 활용하여 문제를 풀 수 있다.

## 최종 결과 : 

### 공격 문 : 1000000, 1000000

### 실행 결과 :

공격 실행
공격 성공

 

Flag = YaY_I_AM_A_MILLIONARE_LOL

'Wargame > Pwnable' 카테고리의 다른 글

Pwnable (14. cmd1)  (0) 2022.07.12
Pwnable (13. lotto)  (0) 2022.07.11
Pwnable (11. coin1)  (0) 2022.07.09
Pwnable (10. shellshock)  (0) 2022.07.08
Pwnable (9. mistake)  (0) 2022.07.07
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!