반응형
[pwnable.kr] Toddler’s Bottle - lotto
나머지, main과 help 함수는 분기와 출력 밖에 없어서 가져오지 않았습니다.
우선 6byte를 입력합니다. 그리고 /dev/urandom에서 난수를 가져와서 범위를 1~45로 만듭니다.
숫자가 맞으면 continue를 이용해서 중복 체크(?) 후 다음 루프를 돌아야 하는데, 그렇지 않습니다. 총 6 X 6 = 36번 비교를 해서 6번 같아야 합니다. 같은 값 6개를 입력했을 때, lotto 배열의 값 중 하나만 그 값과 동일하다면 flag를 출력하겠네요. 당연히 확률도 월등히 높아지겠죠.
그렇다고 숫자를 6개 입력한다거나 하면 flag가 출력되지 않습니다. 정수로 받는 것이 아니기 때문에 48 ~ 57 범위의 값이 들어가게 됩니다. 따라서 1 ~ 45 범위의 ASCII 문자를 보고 아무거나 넣어주면 됩니다.
!로 시도해 보겠습니다.
한 20번 정도 시도한 끝에 flag가 출력되었습니다. 감사합니다.
반응형
'System&Write up > Pwnable.kr' 카테고리의 다른 글
[pwnable.kr] Toddler's Bottle - mistake (0) | 2017.12.17 |
---|---|
[pwnable.kr] Toddler's Bottle - cmd1 (0) | 2017.12.17 |
[pwnable.kr] Toddler's Bottle - blackjack (0) | 2017.12.15 |
[pwnable.kr] Toddler's Bottle - random (0) | 2017.11.28 |
[pwnable.kr] Toddler's Bottle - passcode (0) | 2017.11.24 |