Cyberpeace 2022 - Crysys (Pwn)
Summary: A minimal binary with only the read libc function and containing a standard stack overflow can be exploited by leveraging a common add-what-where ga...
Summary: A minimal binary with only the read libc function and containing a standard stack overflow can be exploited by leveraging a common add-what-where ga...
Summary: An ELF binary contains functionality to generate a ‘hashed’ identifier from two bytes of memory at an offset specified by the user. This ‘hashed’ id...
Summary: In this two part challenge, flawed filename logic allows an attacker to write arbitrary Python files that are executed as a CGI script. Once the att...
Summary: An insecurely implemented Python native library allows for an attacker to exfiltrate the XOR key used to ‘encrypt’ arbitrary data as well as contain...
Summary: Standard byte-by-byte ECB oracle decryption.
Summary: Control of the size parameter to malloc and a subsequent lack of checking that the returned pointer is not 0 leads to an arbitrary null byte write t...
Summary: A dump of a Windows user’s AppData containing Google Chrome library data files and Windows DPAPI master key files can be used in conjunction with th...
Summary: Applying the small subgroup attack in a pseudo Diffie Hellman key exchange scheme that does not give the public A value allows for an attacker to co...
Summary: Typical math scripting challenge. Just providing the solution for a safeeval version to avoid insecure evaluation of untrusted inputs.
Summary: The PHP function realpath can be tricked to allow other protocol wrappers to be used in readfile by specially crafting the directories in an unzippe...
Summary: Exploit log4j vulnerability to leak environment variables.
Summary: Choosing the value of the prime modulus - 1 as the base in a pseudo Diffie Hellman key exchange scheme allows setting a shared value to 1. When this...
Summary: Sagemath contains sinks that allow for the arbitrary execution of Python code when converting from user input to math objects.
Summary: I played VULNCON CTF 2021 for a couple of hours and solved a few challenges. Here are the quick solutions to the few challenges that were solved.
Summary: The Singapore team competed at the ASEAN Cyber SEA Game 2021 organised by the ASEAN-Japan Cybersecurity Capacity Building Centre (AJCCBC) and achiev...
This challenge was created for The InfoSecurity Challenge (TISC) 2021 organised by the Centre for Strategic Infocomm Technologies (CSIT). It was the 9th leve...
Summary: Bypass the restrictions of a Python jail to gain access to a get flag function within an impossible-to-instantiate metaclass class.
Summary: Our team achieved third place in the GovTech organised STACK 2020 competition.
Summary: Analysing the provided memory dump yields a hosted PNG file containing a steganographic message.
Summary: Malformed IEEE 802.11 RSN tags within select beacon frames are used as a means of encoding hidden data.
Summary: An I2C trace of a probed 16x2 LCD screen is provided in which credentials containing a usernames, passwords, and a SecurID key can be extracted.
Summary: An ARM crackme is transferred over Bluetooth. Extracting the binary allows us to apply angr to it to automatically find the flag.
Summary: Three different individual messages are encoded within HTML via their classes and their styled visibilities.
Summary: Provide an image that satisfies an image classifier to obtain the flag.
Summary: Data hdiden within a corrupt Windows registry hive contains an Base64-encoded guessable flag.
Summary: A format string attack allows us to overwrite an entry in the GOT to redirect execution to a print flag function.
Writeups for the TISC 2020 CTF organised by CSIT.
Escape python jail.
Execute arbitrary shellcode by writing to the buffer by calculating values that provide the right values when simulating a projectile’s trajectory.
Javascript jail challenge that filters most Javascript special symbols and alphabets.
Multiple vulnerabilties involving formats strings and unsafe threaded access to shared variables in a 32 bit ELF binary allows an attacker to obtain remote c...
Exploiting the same ‘vulnerable’ binary on three different architectures: x86, ARM, MIPS.
The FindFirstFile() function in the Windows API can cause odd behaviour in PHP applications running on Windows. We leverage this to leak information about th...
Arbitrary shell commands can be created by using only punctuation in a service that filters all characters except for punctuation.
Using a format string attack on a remote server, an attacker can leverage certain data structures present in a running Linux process to ascertain key address...
An exposed Apache JServ Protocol server allows an attacker to proxy requests to Tomcat server running Jolokia. The Jolokia instance allows the attacker to cr...
An exposed Kubelets port in a vulnerable deployment allows an attacker to run commands without authentication remotely within containers.
The NUS Greyhats played in the Singapore Cyber Conquest 2017 held at the GovWare 2017 conference as part of the Singapore International Cyber week. Two of ou...
Using the SQL injection vulnerability to write a PHP file to the disk and executing it with a local file inclusion vulnerability gives remote code execution.
Standard SQL injection challenge in which dumping out the data in the database reveals the flag.
Loose comparisons in PHP allow an attacker to bypass authentication.
Simple crackme style binary solved with a simple angr script.
Simple ruby jail challenge with a failing blacklist that deletes common methods that allow for arbitrary command execution.
Simple stack overflow with a statically compiled binary can be exploited with a generated execve ROP chain. The ROP chain has to be split up into multiple st...
I participated with the NUS Greyhats in this year’s HITBGSEC CTF 2017. It was organised by the HITB Netherlands CTF team and the XCTF League crew. It ran ext...
JSON Web Tokens have no means of authenticating the header and thus can be abused to manipulate the server into verifying a forged signed message with a key ...
UBIFS images are recovered from a crashed drone and the flag is included in the video of the drone’s last moments.
Extracting the private key into a PEM file from a PKCS12 file transmitted over UDP allows the investigator to decrypt an RDP session and recover some secret ...
Uninitialised variable usage allows for reliable exploitation of a classic stack overflow on a NX and PIE enabled binary using gadgets from the vsyscall page...
Fake an originating IP address from North Korea using the X-Forwarded-For header.
Use of String.match as opposed to String.equals in Java allows an attacker to recover sensitive input such as an admin username character by character with r...
Overwriting a null byte in a buffer causes printf to print sensitive struct data.
Off-by-one error allows overwrite of a null byte that allows for a struct to be completely filled with non-null bytes which tricks strlen into returning a la...
A cookie using ECB mode encryption allows an attacker to forge admin privileges by rearranging encrypted blocks for decryption.
PHP local file inclusion vulnerability leads to source code disclosure revealing python code vulnerable to a hash extension attack allowing an attacker to fa...
A PHP service that allows uploading of small files (<= 7 bytes) with arbitrary filenames within a browsable path.
Exploit a tiny binary with an extremely customised memory mapping with an infoleak leading to libc disclosure and jump to magic shell address.
Abuse the stack smashing protector infoleak vulnerability to leak the flag.
Steal the password and TOTP token from an admin using cross-site scripting.
Remote code execution in a seccomp protected python service requiring manipulating python internals to retrieve the flag in memory.
Remote code execution with a code injection vulnerability in a Forth interpreter.
Analyse a given PCAP for some secret communication between Alice and Bob and determine which messages contain a valid signature.
Directory contents are hidden with a mount.
Execute arbitrary non-alphanumeric ruby code with length limitations.
An off-by-one error allows an attacker to leak return codes from memcmp to determine the difference in the supplied byte and the compared byte to leak the fl...
Server-side request forgery in a PDF page printer service in PHP leading to disclosure of secrets in a server-side PHP source code.
Type juggling in PHP’s weak comparison operator (==) allows an attacker to generate passwords to an administrator account and bypass the original MD5 hashing...
Use of the X-Forwarded-For header allows an attacker to fake country of origin to collect flags.
Use the Boneh-Durfee attack on low private exponents to recover the original two prime factors comprising the private key and decrypt an encrypted flag.
Recover the IV of an AES operation by utilising imperfect knowledge of the key and encrypted output.
Fake a valid cake object containing arbitrary ingredients to a bakery service by modifying decompiled Java bytecode and resigning the JAR with spoofed creden...
A troll challenge that required you to transcribe a melody on a hidden area of the website.
Dystopian Narwhals participated in PoliCTF 2015, and it was a lot of fun. The challenges were challenging, yet engaging and we ended up with a score of 1258 ...
Simulated shell environment lets you pretend to be Hugh Jackman in Swordfish.
Remote prolog application to solve the Tower of Hanoi problem is vulnerable to remote code execution by injecting Prolog code.
Simple challenge involving XORing.
We are given an image of TV5 Monde.
The challenge site returns a HTTP response containing an SVG. The HTTP response is reversed.
We are given an IP address:port pair and told to bruteforce smartly.
Simple programming challenge in which you had to solve equations in different formats.
Reverse engineer a server binary to determine how to interact with it and write a client.
Sanity check challenge.
The flag was embedded in a message that was encoded into different number bases from ASCII.
A crack me that decrypts the password into a wide length string in memory.
Simple sanity check reversing challenge with flag in strings.
Message encoded in a seven segment display LED format.
Remote code execution by injecting python code into a Python WSGI server.
Insecure direct object reference allows changing of password of another user.
We are given the following binary to reverse: elf2. (It’s a zipped file)
the solution is the md5 of the decrypted file
This is a stolen application of super-duper payment system. But this is broken piece of cake, completely broken =(
cat flag on port 2222 at qiwictf2014.ru
First Javascript challenge released out of 2 Javascript challenges.
The only steganography challenge in TKBCTF4 and its only worth 100 points.
We were given a x86-64 Windows PE binary to reverse.
Second javascript challenge for the CTF. Similar in concept to the previous javascript challenge, rand, you are given a Sandboxed node.js REPL to play with.
Find the key.
Alien Technologies.
Play with this amazing calculator: calc.challenges.polictf.it:4000
Retrieve the key.
We solved the post-patch version of this binary.
This binary is vulnerable to a buffer overflow in the strncpy function called in the main function with user supplied input. It takes in two arguments, argum...
This was more of a reversing puzzle than an exploitation one. The binary accepts a parameter as a password. It checks if the password is correct and cats the...
In this challenge, an image divided into blocks has its blocks scrambled not unlike a sliding block puzzle (http://en.wikipedia.org/wiki/Sliding_puzzle). The...
In this puzzle, you had to evaluate an equation encoded in base64 in an array structure consisting of values and operands hidden in a custom header. The obje...
This challenge required you to log in as any valid account.
This is the solution script:
It’s a disaster! Not only that these useless piles of rotten meat obfuscate all their stupid code, they have also lost our precious root password, or “Flag” ...
Some people try to fight the zombie apocalypse by selling pseudo antidote. We need the secret formula in config.php to destroy their snake oil business…
“Try solving the annoying puzzle at https://ctf.fluxfingers.net:2074/ or zombies will eat your soul!”
As time passes by and the zombie apocalypse seems to stay for a while businesses have to adapt to survive. Food store chains offer brains and biscuits for th...
The CTF was really enjoyable. Really great casual atmosphere to it. Too bad we only really caught the last couple of days. Really looking forward to the next...
Note: images and files are missing in this blogpost. To solve the puzzle, we had to obtain the password to a ‘Pentagon’ site relying on Javascript authentica...
Note: images are missing in this blog post. The only piece of the puzzle we were given was an image file. The distinguishing feature for this picture is that...
In this challenge, we were given the a large amount of text in a file. The entire text may be found at the end of this blog post.
A zip file containing an ELF binary and Windows executable file was given to us. We need not care about the Windows executable as both the ELF binary and the...
In this puzzle, a C source file was given to us.
In this task, we are supposed to answer the question: “What’s the md5 of the file being transferred?”. We are given another capture file, this time containin...
We are given an objective for the packets series: “Part 1. Find the secret link in this conversation.” We have a .pcap capture file and we simply apply a fil...
We didn’t solve this puzzle and submit the flag in time, but when we did… well it was a huge reminder not to overthink things.
PPC100 is a puzzle that requires some degree of scripting. To obtain the flag, we have to add up the two large numbers given and submit the result through PO...
This was a CTF challenge solved by Hiromi in Codegate 2012.
This was a CTF challenge solved by Hiromi in Codegate 2012.