# Algebra

CSAW'18 CTF Qualification - MISC (100 pts).

# CSAW’18 CTF Qualification: Algebra

Event Challenge Category Points Solves
CSAW’18 CTF Qualification Algebra MISC 100 410

### Description

Are you a real math wiz?

nc misc.chal.csaw.io 9002

### TL;DR

This challenge consists in equations being thrown at us that we have to solve and send the result in order to get the flag. Python and sage, guide us please !

### Methology

A friend I was talking with while solving this chall told me :

Well, the equations are simple, let’s write a quick script to solve it !

Hearing that, I went like :

Hum… Hum no. That’s not how it works, they wouldn’t give 100 points for that…

In fact, during CSAW 2017 quals, there was an other Misc I worked on, and the questions (bank card number to compute) were getting harder and harder, so I knew we had to find a better way to solve it automatically. So I took my worst coding skills, and used popen and eval like I it was my last day on earth. Here’s the result, 10mn coding ! :)

#!/usr/bin/env python2

from pwn import *
import os

r = remote("misc.chal.csaw.io", 9002)

while True:
try:
data = r.recvuntil("equal?: ")
line = [line for line in data.splitlines() if "=" in line][0]
print "\n" + line
out = os.popen("sage -c \"var('X'); print solve([" + line.replace("=", "==") + "], X)\"").read()
if "/" in answer: # Sage does not simplify, so python will do it ! :)