Райтапы по CTF{2025}
2.83K subscribers
215 photos
25 videos
87 files
393 links
☺️ Уютное сообщество для публикации райтапов с разных CTF соревнований и платформ

💬 Наш ламповый чатик: @writeup_chat

✍️ По любому вопросу можно писать мне: @freenameruuuu

Таски решать тут: @writeup_ctf_bot
Download Telegram
#разное #codeby
Великий математик от @while_not_False (пацана знаю лично, просто настоящая кибер-котлета для своих лет!)
Ссылка на задание


from pwn import remote
import re

print('\033[31m')
host = "62.173.140.174"
port = 10360


def solve_equation(equation):
pattern = r'\((.*?)\)\s*(\w+)\s*([\+\-\*\/])\s*(\w+)\s*=\s*(-?\d+)'
match = re.match(pattern, equation)
if match:
x = match.group(2) # значение после скобок и до оператора
op = match.group(3) # оператор
y = match.group(4) # значение после оператора и до знака равенства
z = int(match.group(5)) # значение после знака равенства

# Пробуем привести x и y к целому числу, если не получится - оставляем как строку
try:
x = int(x)
except:
pass
try:
y = int(y)
except:
pass

if isinstance(x, str):
if op == '+':
result = z - y
elif op == '-':
result = z + y
elif op == '*':
result = z // y
elif op == '/':
result = z * y
else:
return None
elif isinstance(y, str):
if op == '+':
result = z - x
elif op == '-':
result = x - z
elif op == '*':
result = z // x
elif op == '/':
result = x // z
else:
return None
else:
return None
return result
else:
return None


def main():
conn = remote(host, port)
for _ in range(8):
print(conn.recvline().decode())
conn.sendline('start')
for _ in range(3):
print(conn.recvline().decode())
while True:
conn.recvline().decode()
equation = conn.recvline().decode().strip()
if "FLAG" in equation:
print('\033[31m' + f"\n\n{equation}")
break
print('\033[32m' + f"{equation}")
print(conn.recvline().decode())
solution = solve_equation(equation)
if solution is not None:
print('\033[33m' + ">>> " + '\033[34m' + f"{solution}")
conn.sendline(str(solution))
else:
print("Error")
break
conn.close()


if __name__ == "__main__":
main()

#codebygames
🔥6👍1