Wargame/Pwnable.kr
Pwnable.kr Blackjack 풀이
먼즈
2019. 8. 31. 19:51
간만에 돌아온 포너블케알 라업입니다. 원래 blackjack 문제 전에 coin1 문제가 있지만 이유모를 페이로드 실행 실패로 블랙잭부터 풀이하려고요
블랙잭 게임의 소스코드가 있는 사이트를 제시하네요. 들어가보면
? 존나 기네요 일단 서버부터 접속해서 뭐하는 게임인지 알아보겠습니다 근데 블랙잭이야 뭐 너무 대중적인 게임이라..
1 누르면 게임 시작, 2는 도움말 3은 게임 종료라네요. 저는 룰을 알고 있으므로 1을 눌렀습니다
현재 잔고는 500$인데, 뭐 설마 하고 훨씬 넘는 금액을 입력했습니다만 별다른 말이 없네요? 아마도 베팅에 관여하는 함수쪽에 문제가 있는걸로 생각하고 진행했고 게임을 졌습니다.
근데 제가 입력한 금액과는 다른 잔고가 출력됐고 그 위에는 묘하게 플래그같은 플래그가 출력됐습니다 사실 개뽀록ㅋ
걍 뽀록으로 플래그 얻은거는 공부에 도움이 안되므로 코드를 살펴보겠습니다
거의 800줄에 달하는 코드치고 함수명들이 다 명확해서 훑어보는 것만으로도 대충 뭐가뭔지 짐작이 오네요
쭉쭉 내리다보면 721줄부터 베팅 관여하는 함수가 위치하는 것을 확인할 수 있는데, if (bet > cash)에서 if문이 반복되지 않고 한번만 쓰이는 것이 취약점이네요. 제가 입력한 베팅금과 잔고 비교를 한 번밖에 안 하는 게 취약점인 겁니다. 근데 플래그를 출력하는 부분은 어디 있는 걸까요
암튼 1pt값하는 문제였습니다