DownUnderCTF 2021

DownUnderCTF is a world-wide Capture The Flag (CTF) competition targeted at Australian and New Zealand secondary and tertiary students.

Inside Out - Web

Challenge

Challenge

Solution

Open the relate link Proxy Example, we have some infomations about the network configuration.

Look at the url bar on Chrome, I realize that it request “/request?url=http://example.com/”

With the ip address in Proxy Example page, I tried to request the site with payload: https://web-inside-out-b3d9f3b9.chal-2021.duc.tf/request?url=http://{ip_address}/admin and got the flag

Flag

Flag

Cowboy World - Web

Challenge

Challenge

Solution

Open the challenge link, we got the login site cowboy :((

Let’s check the robots file and we have this:

It’s absolutely impossible to request to /sad.eml. So, we need to try something like mod the HTTP Header. Change the User-Agent attribute to “regular_cowboys” and I succeed. The site was give me the eml file. Cat this file and we have the username. Let’s chill with SQL Injection. Then we got the flag =)))

Flag

Rabbit - Misc

Challenge

I put the source here if you want to try after read this write-up

Solution

My work is decompress 1000 times the flag.txt. So that, I was write a small bash script to capture the flag.

for i in {1..1000}
do
	eval "7z e flag* -y"
	eval "rm flag"
	find . -depth -name "fla*" -exec sh -c 'f="{}"; mv -- "$f" "flag"' \;
	echo $i
done

Flag

General Skill - Misc

Challenge

Solution

We will answer all quiz (10s/question) to get the flag. But, I think it so difficult to “handmade” all quiz. So, I wrote this script to walk through challenge =)))

from pwn import *
import urllib
import base64
 
def rot13_decrypt(msg):
    plain = ""
    for i in msg:
        if (i == "_"):
            plain += "_"
            continue
        a = ord(i)
        shift = a - 13
        if (shift < 97):
            shift += 26
        plain += chr(shift)
    return plain

def rot13_encrypt(msg):
    cipher = ""
    for i in msg:
        if (i == "_"):
            cipher += "_"
            continue
        a = ord(i)
        shift = a + 13
        if (shift > 122):
            shift -= 26
        
        cipher += chr(shift)
    return cipher

def recv():
    return (io.recv().strip()).decode("utf-8")

io = remote("pwn-2021.duc.tf",31905)
#handle
io.recvuntil("Press enter when you are ready to start your 30 seconds timer for the quiz...")
io.sendline()
io.recvuntil("Answer this maths question: 1+1=?")
io.sendline(b"2")
io.recvuntil("Decode this hex string and provide me the original number (base 10): ")
io.sendline(str(int(recv(),16)).encode())
io.recvuntil("Decode this hex string and provide me the original ASCII letter: ")
io.sendline(str(chr(int(recv(),16))).encode())
io.recvuntil("Decode this URL encoded string and provide me the original ASCII symbols: ")
e = urllib.parse.unquote(recv())
io.sendline(str(e).encode())
io.recvuntil("Decode this base64 string and provide me the plaintext: ")
io.sendline(base64.b64decode(recv()).decode('utf-8'))
io.recvuntil("Encode this plaintext string and provide me the Base64: ")
io.sendline(base64.b64encode(recv().encode('utf-8')))
io.recvuntil("Decode this rot13 string and provide me the plaintext: ")
io.sendline(rot13_decrypt(recv()))
io.recvuntil("Encode this plaintext string and provide me the ROT13 equilavent: ")
io.sendline(rot13_decrypt(recv()))
io.recvuntil("Decode this binary string and provide me the original number (base 10): ")
a = recv()
a = a[2:]
io.sendline(str(int(a, 2)).encode())
io.recvuntil("Encode this number and provide me the binary equivalent: ")
h = recv()
h = bin(int(h))
io.sendline(str(h).encode())
io.recvuntil("Final Question, what is the best CTF competition in the universe?")
io.sendline(str("DUCTF").encode())

io.interactive()

Flag

Bad Bucket - Cloud

Challenge

Challenge

Solution

It’s so easy to find out the flag. Come back to the “https://storage.googleapis.com/the-bad-bucket-ductf/”, the site will be displayed the need informations

Request to ./notaflag, I got the flag

Flag

nostrings - Re

Challenge

Solution

Use IDA tool and look a round. I thought that the author give everyone flag so that teams could happy before “capture” all flag of RE =))) You can try with the challenge source I put here

Flag

Note

It’s remain some challenge which I solved myself, but I think it so easy to write on here ^^