본문 바로가기
Wargame/pwnable.kr

pwnable.kr lotto

by morae23 2019. 2. 1.

[Toddller's Bottle] lotto


ssh lotto@pwnable.kr -p2222


먼저 아래와 같은 파일들을 볼 수 있다.




소스코드에서 play() 함수를 보면 아래와 같이 score를 계산한 뒤 match가 6일 경우 플래그를 얻을 수 있음을 알 수 있다.




이 때, for 문을 보면 lotto와 submit이 일치하는지 확인하는 부분이 이상한 것을 알 수 있다.

각 index별로 일치하는지를 확인하여야 하는데, 위의 코드를 보면 모든 index들을 다 확인하는 것을 볼 수 있다.


즉, lotto[0]은 submit[0]과만 비교하여 하는데, lotto[0]을 submit[0], submit[1], submit[2], submit[3], submit[4], submit[5] 모두와 비교한다.

1~45 사이의 값이 들어있기 때문에 1개의 값만 알아내고, 그 값을 6회 반복하여 submit에 넣어주면 match가 6이 될 가능성이 크다.

(lotto에 해당 값이 중복되어 있지 않은 경우)





따라서 33에 해당하는 '!'를 6개 보낸 결과, 4회만에 플래그를 얻을 수 있었다.

'Wargame > pwnable.kr' 카테고리의 다른 글

pwnable.kr shellshock  (0) 2019.02.01
pwnable.kr mistake  (0) 2019.02.01
pwnable.kr blackjack  (0) 2019.02.01
pwnable.kr coin  (0) 2019.02.01
pwnable.kr input  (0) 2019.02.01

댓글