Profile

Shadow


CloudSek CTF

By Sh1dO0w December 11, 2025 Posted in CTF

Hey, I’m Sh1d00w

def sh1d00w():
    """CTF Player / Penetration tester / Red Teamer"""
    Stats = {
        "ctf Rank": "262",
        "ctf name": "sh1d00w",
    }
    for k, v in Stats.items():
        print(f"{k:>9}: {v}")

sh1d00w()

I love to solve web challenges so i started with web.

Challenge 1: Bad Feedback

Category: Web

Description: A company rolled out a shiny feedback form and insists their customers are completely trustworthy. Every feedback is accepted at face value, no questions asked. What can go wrong?

Challenge Instance : http://15.206.47.55000

DNS diagram

DNS diagram

Payload i tried

<!DOCTYPE yoo [ <!ENTITY sh1 SYSTEM "file:///flag.txt"> ]>

and call in name field &sh1;

DNS diagram

About the Vulnerability

The application is vulnerable to XML External Entity XXE injection. The client-side JavaScript constructs an XML payload from the form input and sends it to the /feedback endpoint. The server parses this XML without disabling external entities, allowing an attacker to define a custom entity that references a local file on the server.

Challenge 2: Triangle

Category: Web

Description: The system guards its secrets behind a username, a password, and three sequential verification steps. Only those who truly understand how the application works will pass all three. Explore carefully. Look for what others overlooked. Break the Trinity and claim the flag.

Challenge Instance : http://15.206.47.58080

The challenge provided a login page with 5 fields:

Submitting the form triggers a POST request to /login.php using JSON created dynamically via JavaScript.

DNS diagram

"123456" == true // This evaluates to TRUE in PHP
DNS diagram

Here i tried The first challenge Nitro Because i am not much good in Mobile Pentesting(I am still learning). So i try scripting challenge first!

Challenge 3: Nitro

Category: Scripting

Description: Ready your scripts! Only automation will beat the clock and unlock the flag.

Challenge Instance : http://15.206.47:59090

DNS diagram

Required transformation:

  1. Reverse the string r5JhJGbta4xc → cx4atbGJhJ5r

  2. Base64-encode the reversed string cx4atbGJhJ5r → Y3g0YXRiR0poSjVy

  3. Wrap into the required flag format CSK__Y3g0YXRiR0poSjVy__2025

  4. POST to /submit

Script I wrote

import requests, re, base64

session = requests.Session()

url = "http://15.206.47.5:9090"

t = session.get(f"{url}/task").text

v = re.search(r"string: (.*)</p>", t).group(1)[::-1]

p = f"CSK__{base64.b64encode(v.encode()).decode()}__2025"

print(session.post(f"{url}/submit", data=p).text)
DNS diagram

Challenge 4: Ticket

Category: Web

Description: Strike Bank recently discovered unusual activity in their customer portal. During a routine review of their Android app, several clues were uncovered. Your mission is to investigate the information available, explore the associated portal, and uncover the hidden flag. Everything you need is already out there! Connect the dots and complete the challenge. The android package is com.strikebank.netbanking and the security review was conducted via bevigil.com .

Report can also be viewed by visiting the URL with the following format: https://bevigil.com/report/

DNS diagram

<string name="internal_username">tuhin1729</string>

This CTF was really fun!
The challenges were simple but very enjoyable, and the flow felt smooth.
I actually solved all of them while I was at the office, secretly playing your CTF during work hours ;)

Thank you for organizing such a wonderful CTF!


You Might Also Like