System&Write up/Pwnable.kr

[pwnable.kr] Toddler's Bottle - lotto

Jubil 2017. 12. 15. 20:25
반응형

[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가 출력되었습니다. 감사합니다.

반응형