DownUnderCTF 2023
Proxed

Read source code, knowing that we need to add X-Forwarded-For: 31.33.33.7 to header. Then refresh to get flag.
Solve script:
Discord

The flag is the first character of every word in the sentence at the final second of the video in #rules.

𝕏

There are 12 pics in total, each of them has a part of the flag. Gather all of them, we have:
since Wtter is not a valid word, after correcting I get:
Welcome to DUCTF!

After un-upsidedown the text, we got:
Aussie Plus Plus is actually a programming language, paste the snippet in the attachment file to this site and execute to get flag.
static file server

Just HTML-encode the relative path (../../../../flag.txt) and use in the request.
blinkybill

Listening to the attachment, I know this is definitely Morse code but I am unable to use online Morse code translator online since there is some background music. Viewing this file's spectogram in Audacity, I got:

At this point, the short dash is a dot, the longer one is a hyphen. Translate that and we got the flag.
downunderflow

The vulnerability is scanf("%d", &x), the int data type has the limit of [-2147483647, 2147483647].
The solve script:
xxd-server

Some valuable information in the source code:
PHP files are executable
Everything we upload are preserved, no filter or sanitization happens.
So I just need to upload a PHP webshell to interact with the server, however, if the payload is too long (exceed 1 line in the xxd CLI interface), it will cause error.
My payload:
After that, interact with server:
helpless

Basically, the help() interface is a less binary, so when I pressed H, I got the manual page. Inside, it shows that :e is read a file. So I can easily read the flag.
Solve script:
Make sure to smash your keyboard in restricted environment, you may find special interaction!
needle in iam

It appears that the credentials.json file and the given command all refer to the Google Cloud CLI, i install it then authenticated with the creds file using this command:
Using gcloud iam roles describe ComputeOperator --project=needle-in-iam, can confirm that this account does not have enough permission, however, I can list all roles in this project and then grep the flag.
pyny

Since I am unable to understand what is happening or unable to compile into a single binary to reverse, I decided to hook a gdb into the running python scripts.

Last updated