Programming

Programming Challenges for CTF and Security

Write small programs to transform data, automate investigation, and solve security tasks that do not scale by hand.

What you will learn

  • Parse and transform evidence
  • Break investigations into testable steps
  • Automate repetitive security analysis

Programming challenges

47 challenges available.

ProgrammingLevel 1★☆☆☆☆

09. Python Automation - File Reading

In security work, programming is essential for processing large amounts of data. In this challenge, you'll use Python…

ProgrammingLevel 2★★☆☆☆

API Requests - Find the Highest-Profit Trade

When the container starts, a stock API begins running on http://localhost:9102 (you do not need to start server.py).…

ProgrammingLevel 2★★☆☆☆

Python Practice - Bulk Base64 Stream Decoding

Every line of data.txt (about 150 lines, created at every start) is Base64. Decode line by line; when the result…

ProgrammingLevel 2★★☆☆☆

Python Practice - Conditional CSV Sales Filtering

data.txt, created at every start, is a sales CSV (transaction_id,date,product_id,amount,status,ref,notes). Several…

ProgrammingLevel 2★★☆☆☆

Python Practice - Compound JSON User Query

Examine the JSON data.txt ({"users": [...]}) created at every start. Each user has id, name, email, role, active and…

ProgrammingLevel 2★★☆☆☆

Python Practice - Target-IP Access Log Tracing

data.txt (about 1,300 lines, created at every start) is a web server access log. Extract only the requests from…

ProgrammingLevel 2★★☆☆☆

Python Automation - Bulk Base64 Decoding

Every line of data.txt (about 150 lines, created at every start) is Base64. Decode line by line; when the result…

ProgrammingLevel 2★★☆☆☆

Python Automation - CSV Sales Filtering

data.txt, created at every start, is a sales CSV (transaction_id,date,product_id,amount,status,ref,notes). Several…

ProgrammingLevel 2★★☆☆☆

Python Automation - JSON User Query

Examine the JSON data.txt ({"users": [...]}) created at every start. Each user has id, name, email, role, active and…

ProgrammingLevel 2★★☆☆☆

Python Automation - Access Log Parsing

data.txt (about 1,300 lines, created at every start) is a web server access log. Extract only the requests from…

ProgrammingLevel 2★★☆☆☆

Python Automation - Password Hash Cracking

Examine data.txt (a list of SHA-256 digests) and wordlist.txt (800 four-character lowercase alphanumeric tokens), both…

ProgrammingLevel 2★★☆☆☆

Programming - Bash Job Log Analysis

/challenge/jobs.log is a nightly batch log that is regenerated with random data every time the container starts. Each…

ProgrammingLevel 2★★☆☆☆

Programming - PIN Brute Force

/challenge/vault.json is a vault record that is regenerated with random data every time the container starts. It…

ProgrammingLevel 2★★☆☆☆

Programming - Hash Verification and Decryption

Analyze the evidence file artifact-manifest.json, which is generated randomly at every start. Each artifact…

ProgrammingLevel 2★★☆☆☆

Programming - Binary TLV Parsing

/challenge/capture.bin is a custom binary file that is regenerated with random data every time the container starts.…

ProgrammingLevel 2★★☆☆☆

Regular Expressions - The One-Time Golden Glyph

Extract every KINO-four-digits-four-uppercase glyph from data.txt, identify the one occurring once, and submit it to…

ProgrammingLevel 3★★★☆☆

Python Automation - SQLite Database Analysis

Examine data.db (SQLite: users / orders / audit_log), created at every start. Aggregate orders per user_id with…

ProgrammingLevel 3★★★☆☆

Python Automation - Custom Cipher Decryption

cipher.txt holds the flag encrypted with a custom cipher (hex). Encryption applies per byte: add (key), xor…

ProgrammingLevel 3★★★☆☆

Python Automation - Encrypted ZIP Password Cracking

A new /challenge/secret.zip is created at every start. It contains flag.txt and readme.txt, encrypted with ZipCrypto.…

ProgrammingLevel 3★★★☆☆

Algorithms - BFS Shortest Path Through a Maze

Use BFS to find the shortest path from S to E in data.txt, then submit the UDLR move sequence to challenge.py. A…

ProgrammingLevel 3★★★☆☆

Programming - SQLite Evidence Database

evidence.db is a SQLite database built from random data at every start (in /challenge, with the tables users /…

ProgrammingLevel 3★★★☆☆

Programming - Web Scraping Graph Traversal

site.json is a crawl result built from random data at every start (in /challenge). It holds the start and target URLs…

ProgrammingLevel 3★★★☆☆

Programming - ZIP Password Recovery

secret.zip is a ZIP encrypted with ZipCrypto (the traditional PKWARE cipher), created at every start (in /challenge,…

ProgrammingLevel 3★★★☆☆

Programming - Packet Log Analysis

capture.txt is a packet log created at every start (in /challenge). Each line is one flow of the form flow=<name>…