1. Description
분석가에게 필요한 가장 기초적 기술은 프로그래밍 능력이다. 이번 문제는 기초적인 프로그래밍 능력을 평가한다.
nc 20.194.123.97 11111
2. Write up
# nc 20.194.123.97 11111
----------------------------------------------------------------------
This is calc challenge.
Analyze the given equation and fill in the blanks.
Flag is awarded after passing 100 stages.
You can use +, -, *, /
----------------------------------------------------------------------
stage 0
1 ? 2704 = 2705
>>+
stage 1
3079 ? 3053 = 6132
>>fail
Bash
복사
문제에 접속해보면 연산자를 맞추는 문제로 총 100문제를 풀어야 하는 문제이다.
간단하게 pwntools를 이용해서 스트림을 받아서 파싱 후 해당되는 연산자를 보내면 된다.
from pwn import *
r = remote("20.194.123.97",11111)
for i in range(100):
print r.recvuntil("stage "+str(i))
stage = r.recvuntil(">>")
print stage
prob = stage.split()
if float(prob[0]) + float(prob[2]) == float(prob[4]):
r.send("+")
if float(prob[0]) - float(prob[2]) == float(prob[4]):
r.send("-")
if float(prob[0]) * float(prob[2]) == float(prob[4]):
r.send("*")
if float(prob[0]) / float(prob[2]) == float(prob[4]):
r.send("/")
print r.recv(1024)
r.interactive()
Python
복사
3. FLAG
cce2021{0f2dbc899ed596b1a5d325486c80e41be4bb016e2109ab238ec9e71a88ebb46875c27384ba6af3395c9c10b953a417edd5afd9572ea7f61f}