접속하면 덧셈뺄셈으로 침공을 할수가있다. 하지만 이걸 몇번이나 하는지는 모르겠다.
나눗셈도 있는걸 보니 곰셈도 있을것 같다.
1스테이지는 덧셈뺄셈, 2스테이지는 나눗셈곱셈, 3스테이지는 사칙연산인 것 같다.
시간제약은 없으나, 직접하면 날이 새기때문에 pwntools를 이용해 소스를 짜주자
[python]
from pwn import *
p=remote("ctf.j0n9hyun.xyz",9003)
def four(a,b,c):
if c=='+':
return a+b
if c=='-':
return a-b
if c=='*':
return a*b
if c=='/':
return a/b
def stage(a,n):
print p.recvuntil("input )")
p.sendline(str(a))
for i in range(0,n):
print p.recvline()
s=p.recvline()
s=s.replace("\n","")
s=s.split(" ")
payload=four(int(s[0]),int(s[2]),s[1])
print p.recvuntil(":")
print str(payload)
p.sendline(str(payload))
print p.recvline()
if __name__=="__main__":
stage(1,20)
stage(2,30)
stage(3,40)
print p.recv(200)
화면에 출력된값을 가져와서
연산기호를 파악해 연산을 한 뒤,
값을 보내주는 소스를 작성했다.
1스테이지는 20차까지있고,
2스테이지는 30차,
3스테이지는 40차까지 있는걸
노가다를 통해 확인했다.
3스테이지까지 깨고 출력값을 받아오면 FLAG를 확인할 수 있다.
FLAG
↓↓↓↓↓
더보기
Try yourself please.