Write-up

[pwnable.kr] blackjack write-up

ch4rli3kop 2018. 1. 22. 23:41
반응형


문제는 위와 같습니다. 백만장자에게 플래그를 준다고 하네요. 서버에 접속해보면 블랙잭 게임을 진행하고 있다는 것을 알 수 있습니다. 대충 몇 몇 단서들을 종합해보면, 게임을 진행하면서 보이는 Cash 값, 즉 플레이어의 보유 자산이 1,000,000 이 넘으면 플래그를 준다는 것 같습니다.  


문제에서 주어진 소스코드를 살펴보겠습니다. 플레이어의 카드 합이 딜러의 카드 합보다 작으면 배팅한 금액에서 차감하네요. 당연하네요.


근데, 여기서 한가지 생각해야 하는 점은 이게 프로그램이고, bet 가 int 형이라는 겁니다. 만약 배팅하는 금액인 bet 가 음수라면 어떻게 될까요? " - (-) = + " 아닌가요? 머릿속의 꽃밭이 실제로 실현이 가능할지, 혹여나있을지 모르는 점검 루틴을 살펴봐야겠습니다. 실제로 아래의 코드를 보면 배팅금액이 실 보유자산보다 클 경우만 체크할 뿐, 음수일 경우는 체크하지 않고 있음을 알 수 있습니다. 



더해서 1,000,000 이 넘어야하니, -1,000,000 을 해서 보유자산을 1,000,500 으로 한 번 만들어보겠습니다.



예상하던데로 무사히 1,000,500 을 완성했더니 플래그를 보여주는 군요! :)


반응형

'Write-up' 카테고리의 다른 글

[CODEGATE 2018] BaskinRobins31 write-up  (0) 2018.02.06
[pwnable.kr] random write-up  (0) 2018.01.23
[pwnable.kr] cmd1 write-up  (0) 2018.01.17
[angr tutorial] ais3_crackme writeup  (0) 2018.01.14
[SECCON 2017] Powerful_Shell writeup  (0) 2018.01.14