Challenge list
Linux-Kernel Module. Gaining Root via a Vulnerable Driver
This challenge analyzes a vulnerable character-device driver as a safe user-space simulation. No real kernel module is…
Linux-Buffer Overflow. Exploiting a gets() Vulnerability
A vulnerable SUID C binary with protections disabled is provided. Exploit its buffer overflow to redirect control flow…
Decrypt TLS-Encrypted HTTPS Traffic
In `~/evidence/` there is a capture `traffic.pcap` (libpcap format) of HTTPS traffic from a client PC, and the TLS key…
Web-26. Prototype Pollution in User Profile Manager
In this Node.js/Express app, a logged-in user can update their own profile. Check whether the recursive merge function…
Web-27. GraphQL Introspection Leak
This GraphQL API exposes a schema of User objects with introspection enabled. Investigate whether undocumented queries…
Web-28. Hijacking an OAuth Authorization Code
This OAuth 2.0 authorization provider offers a login flow, but its redirect_uri validation may be weak. Investigate…
Web-29. NoSQL Injection in a MongoDB Login Form
This login portal is backed by MongoDB and builds its query directly from raw JSON username/password input.…
Web-30. Insecure Deserialization in KinoVault
A legacy backup system codenamed KinoVault reportedly serializes user session objects with Python's pickle module and…
Custom Tool Development - Web Directory Scanner
Analyze the locally generated artifacts/scanner/directory-report.ndjson instead of scanning a live website. The…
Network Tunneling - SSH Port Forwarding
Practice SSH local port forwarding inside one container. SSH listens on 127.0.0.1:22 and the internal service uses…
Network Analysis - Rebuilding Chunked gzip HTTP from TCP
capture.pcap records two HTTP exchanges over one TCP connection. The server's segments are reordered and some are…
Network Analysis - TCP Retransmission Covert Channel
capture.pcap contains TCP retransmissions with duplicate sequence numbers. Extract retransmissions whose payload…
Extract Malware Payload from Memory
`/challenge/memstrings.txt` holds the strings extracted from the address space of a suspicious process, and the…
Detect Hidden Kernel Module in Memory
From the memory of a Linux host suspected of an LKM rootkit infection, three sets of module information were…
Decode Multi-Stage Steganography
Three stages of steganography are planted in `/challenge/cover.png` and `/challenge/notes.txt`. Each stage holds the…
Recover Fragmented JPEG File
`/challenge/fragments/` holds 256-byte clusters (`clus_NNNN.bin`) recovered from the unallocated space of a memory…
Encrypted Communication - GPG Public Key Cryptography
Practice GnuPG decryption. Import every private key under `/challenge/keys/` and decrypt each ciphertext under…
Cryptanalysis - DSA Nonce Reuse Key Recovery
/challenge/signatures.json, created with fresh keys at every start, holds the DSA public parameters (p of 1024 bits, q…
Cryptanalysis - Wiener's Attack on RSA
An embedded-device team made the RSA private exponent d very small to speed up decryption. The public exponent e in…
Cryptanalysis - Recovering an LCG's Hidden Parameters
A service generated both session tokens and an encryption keystream from a linear congruential generator x_{k+1} =…
Recover Damaged RAID5 Array
The RAID5 array `/dev/md0` (4 members) on the file server fs01 no longer assembles after the member sdd failed.…
Vulnerability Scanning - Advanced Nmap NSE
The results of running `nmap -sV -sC --script vuln` against the internal subnet `10.66.13.0/24` are in…
Reconstruct Attack Scenario from Multiple Logs
`/challenge/web.log`, `/challenge/auth.log` and `/challenge/db.log` record the same intrusion among a lot of…
Static Analysis - Code Vulnerability Scanning
The Python source of an internal notes app is in `/challenge/src/`. The nine lines flagged by an earlier…