Writeups
Vulnerability research, advisories, and CTF challenge writeups. Filter by type or tag.
- Vuln
Open Redirect in Jenkins Core Login Flow
Jenkins does not strip tab or newline characters before checking a redirect target for a leading //, so a crafted login link can send a user to an …
- Vuln
Open Redirect in CTFd Login and Registration Flow
CTFd 3.8.4 does not strip tab characters before validating a redirect target, so a crafted next= link in the login or registration flow can send a user to an …
- CTF
Social Media
Password reset tokens came from Apache Commons RandomStringUtils on a seeded java.util.Random, so observed tokens recovered the state and predicted the admin …
- CTF
MetaPages
The cookie was signed over a json-parsed username but authorized over a ujson-parsed one, and a lone surrogate in a duplicate key made the two parsers disagree.
- CTF
Mirror Mirror
Two images XOR together to reveal the hidden content. No flag recorded.
- CTF
Mass Assignment
Registration passed the whole form straight into the user insert, so adding is_admin to the request created an admin account.
- CTF
Template Fury
A Jinja2 SSTI with builtins blacklisted by name, bypassed by spelling every blocked word with hex escapes.
- CTF
Metalens Pro
An image upload ran a vulnerable ExifTool, so a crafted file triggered CVE-2021-22204 for code execution.
- CTF
Sweet Dreams
The flag was already sitting in the page, no request needed past the source.
- CTF
None Shall Pass
A JWT that accepted the none algorithm, so an unsigned token with a tampered claim sailed through.
- CTF
Free Download
The download page checked nothing, so requesting the authenticated endpoint directly returned the flag.
- CTF
Borderline Personality
A front proxy that did not URL-decode while the backend did, so percent-encoding the admin path walked straight past the access control. abl found it.
- CTF
SafePaste
A mutation-XSS that looked like a DOMPurify bug but was really a server-side String.replace breakout, plus an iframe and a cookie-scope trick to read a flag …
- CTF
Example Web Challenge
Sample CTF writeup demonstrating the layout. Delete or replace it with a real one.
- CTF
A1 Full Pwn
A Windows DC: SMB null session leaked a password-protected Office doc, cracking it gave CMS creds, a C1 CMS .NET deserialization bug gave RCE, and BloodHound …
- CTF
Events Never Lie
A pile of Windows .evtx logs and a four-part question set, answered by hunting the events with Chainsaw and the Sigma ruleset.
- CTF
Gate Chat
An “interstellar AI” was told never to name five forbidden planets. Asking in another language and forcing a fixed preamble walked it right past its …
- CTF
Quotes Blog
A blog rendered user quotes through the Jinja |safe filter and had an admin bot visit them, so a stored XSS payload leaked the bot cookie.
- CTF
Athlete Newsletter
An XSS bot with no filtering at all — a bare alert(1) popped it.
- CTF
Jumping
The ELF was a PyInstaller-packed Python program, so the real logic came out by extracting and decompiling the bytecode.
- CTF
Betabuf
A protobuf-based auth scheme defeated in three steps, an over-permissive registration, a length-truncating rename, and a score endpoint used as a parsing …
- CTF
Vault
The password check returned as soon as a character was wrong, so response time leaked the password one character at a time.
- CTF
Janus
A URL fetcher checked that the host was not internal, then fetched it, so a DNS rebind flipped the name to localhost between the two steps.
- CTF
n00bs Table
The easy-points boxes: a flag sitting in an SNMP sysLocation field, and two backdoor ports that handed out flags over netcat.
- CTF
Customer Management Site
Admin creds from the database, command injection in the add-customer form for a shell, then a SUID find for root.
- CTF
Jupiter
An exposed Jupyter server on port 8888. A notebook is a code-execution primitive by design.
- CTF
Marketing Site
A SQL injection in an invoice search dumped a user table, the password doubled as an SSH login, and a sudo awk entry handed over root.
- CTF
Report Viewer
A client-side filter was the only thing guarding command execution. Past it was a file read to SSH keys, then a SUID gawk for root.
- CTF
Fraudio
A Gradio app on the usual port 7860, vulnerable to the path-traversal file read that let us pull /flag.txt.
- CTF
File Transfer and Mini Crypto
A directory brute force found a transfer endpoint with a password-protected zip. Cracking it gave a CSV whose four encoded passwords were each their own mini …
- Vuln
Improper Authorization in Cisco NDFC REST API
A REST API endpoint in Cisco Nexus Dashboard and NDFC lets an authenticated, low-privileged attacker view sensitive information and modify certain files.
- Vuln
Information Exposure in Cisco NDFC REST API
A REST API endpoint in Cisco Nexus Dashboard and NDFC discloses sensitive information to an authenticated, low-privileged attacker through its responses.
- Vuln
SSH Host Key Validation Bypass in Cisco NDFC
Insufficient SSH host key validation in Cisco NDFC lets an unauthenticated, on-path attacker impersonate NDFC-managed devices.
- CTF
Rush Hour
A length-restricted XSS behind a brutal CSP. Multiline JS comments stitched several short injections into one script, which poisoned the admin bot notes, …
- CTF
Forensics
A PCAP of an unencrypted session to a Metasploitable box. Following the TCP stream replayed the attacker shell, flag and all.
- CTF
Upload Issues
A cpio archive extraction allowed path traversal, which overwrote a user record to grant admin, and the admin page printed the flag.
- CTF
Cosmic Pathways
A GraphQL endpoint with introspection turned off still answered a guessed query field that returned the flag.
- Vuln
RCE in Open WebUI via AFO in Transcription Endpoint
Open WebUI 0.3.0 does not validate the content type or filename on its audio transcription endpoint, letting an authenticated user write a file to a path of …
- Vuln
Session Fixation in Open WebUI
Open WebUI 0.3.8 issues session cookies without the Secure flag and with SameSite set to Lax, which lets a low-privileged attacker carry out a session fixation …
- Vuln Department of Defense (Restricted Bug Bounty)
- Vuln Department of Defense (Restricted Bug Bounty)
- CTF
Babychecker Revenge
A link-checker with a local SSRF, reachable at 127.0.0.1:5000/flag. Non-deterministic and not dockerized, the most disliked challenge of the event.
- CTF
HackChatAI
A CSRF/XSS challenge masquerading as SSTI. A script tag on the admin page exfiltrated the bot cookie. First blood.
- CTF
Boing
An image-upload challenge that echoed parsed metadata back. Controlling fields like width and height let us write into the metadata block and reach the flag. …
- CTF
Poppy
A game you had to win to get the flag. We automated it with a play script that won often enough to land the flag on a lucky run.
- CTF
JSON
An exposed Firebase database. The flag was stored as a linked list of characters, each node carrying a computed expression for the next index.
- CTF
DNS Spoofing
The TXT record only answered for a trusted source IP. EDNS Client Subnet let us claim to be 127.0.0.1 and the server coughed up the flag.
- Vuln
SQL Injection in Cisco NDFC REST API
A REST API endpoint and the web UI of Cisco NDFC are vulnerable to SQL injection, letting an authenticated read-only user read, modify, or delete arbitrary …
- CTF
HackNights
A Python jail that forgot to block file descriptors; reopen stdout and shell out.
- CTF
Ticketing
A recursive merge on user-controlled ticket JSON allowed prototype pollution, setting admin to reach the admin page.
- CTF
Vending
A SQLi login leaked the vending machine config, which spoke MQTT over WebSockets. Flipping the right switch topic vended the item. First blood.
- CTF
mental-health
A web chain: a controllable hash function weakened the nonce, with XSS and a CSRF exfil on top.
- CTF
SqLSleuth
A SQL injection login bypass opened a recon trail of hidden directories, DB creds, and a riddle pointing at combining encoded values into a PDF. Co-worked with …
- Vuln
Arbitrary Code Execution via SCP Path Traversal in Cisco NDFC
Improper path validation in Cisco NDFC lets an authenticated, low-privileged attacker upload code via SCP path traversal and execute it with root privileges.
- Vuln
Argument Injection in Cisco NDFC (Network-Admin)
Cisco NDFC insufficiently validates command arguments, letting an authenticated attacker with network-admin privileges inject arguments that corrupt files or …
- Vuln
Command Injection / RCE in Cisco NDFC REST API and Web UI
Improper authorization and insufficient argument validation in the Cisco NDFC REST API and web UI let an authenticated, low-privileged attacker execute …
- Vuln
Improper Authorization Information Disclosure in Cisco NDFC REST API
A specific REST API endpoint in Cisco NDFC enforces authorization improperly, letting an authenticated, low-privileged attacker read sensitive information.
- Vuln
Missing Authorization File Read/Write in Cisco NDFC REST API
A REST API endpoint in Cisco NDFC lacks authorization checks, letting an authenticated, low-privileged attacker read or write files on the device.
- Vuln
Missing Authorization File Upload/Delete in Cisco NDFC REST API
A specific REST API endpoint in Cisco NDFC lacks authorization checks, letting an authenticated, low-privileged attacker upload or delete files in certain …
- Vuln
Sensitive Information Disclosure via Cisco NDFC Configuration Backups
Cisco NDFC stores secrets in cleartext within config-only and full backup files, so anyone with access to a backup can recover device credentials and private …
- Vuln
Sensitive Information in Cisco NDFC Tech-Support Files
A logging function in Cisco NDFC and Nexus Dashboard Orchestrator records HTTP proxy credentials in cleartext within tech-support files.
- CTF
Gentleman
A User repr formatted attacker-controlled data twice, so a Python format string injected into the username walked the object graph to RCE.
- CTF
Quotes
A cookie-driven object merge gave prototype pollution. Polluting a subscribed flag unlocked the gated quote that held the flag.
- CTF
SSFS
A file upload/download app whose /download/ endpoint had a plain path traversal, enough to read a flag off the filesystem.
- CTF
Bucketwars
A public S3 bucket with versioning left old copies of a page readable, and a retrieved image hid the rest behind steghide.
- CTF
Charlie's Angels
An Express backend ran the needle HTTP library in a way that turned a JSON field into an implicit file upload, which dropped a Python file the server then …
- CTF
Log Me In
The session token was the user record XOR a secret key, so flipping one bit of ciphertext flipped the UID to 0 without ever recovering the key.
- CTF
Lost Pyramid
SSTI leaked the values needed to forge a JWT, and pyjwt’s default algorithm set let the public key double as an HMAC secret.
- CTF
Crystals
A loose nginx proxy_pass in front of a Ruby Sinatra app leaked the upstream hostname, which was the flag.
- CTF
Color Picker
The picker fed user input through a shell, so a short reverse shell over an ngrok tunnel gave a session and the flag.
- CTF
readme
Path normalization let me reach the application source behind nginx, and the Dockerfile carried the flag as an environment variable.
- Vuln Department of Defense (Restricted Bug Bounty)
- Vuln Department of Defense (Restricted Bug Bounty)
- Vuln Department of Defense (Restricted Bug Bounty)
- Vuln Department of Defense (Restricted Bug Bounty)
- Vuln
Unauthenticated Arbitrary File Read in Cisco NDFC (PnP)
The Out-of-Band Plug and Play feature of Cisco NDFC lets an unauthenticated, remote attacker read arbitrary files from the PnP container via improper path …
- Vuln IBM (Restricted Bug Bounty)
- Vuln
OS Command Injection in Linux Foundation Yocto Project
Missing input validation in the BitBake Toaster server (Yocto Project) lets a remote, unauthenticated attacker execute arbitrary OS commands via a crafted HTTP …
- Vuln
SQL Injection in SourceCodester Testimonial Page Manager
The delete-testimonial endpoint in SourceCodester Testimonial Page Manager 1.0 puts the testimony argument into a SQL query unsanitized, allowing remote SQL …
- Vuln
Stored XSS in SourceCodester Testimonial Page Manager
The add-testimonial handler in SourceCodester Testimonial Page Manager 1.0 echoes several POST fields without encoding, allowing script injection into the page.
- Vuln
Stored XSS in SourceCodester QR Code Login System
The add-user page in SourceCodester QR Code Login System 1.0 fails to encode the qr-code argument, letting an attacker inject script that runs in a visitor …
- Vuln
Stored XSS in SourceCodester Wedding Guest e-Book
The add-guest endpoint in SourceCodester Wedding Guest e-Book 1.0 does not encode the name field before displaying it, so an attacker can inject script that …
- CTF
Text Adventure API
A save/load API unpickled uploaded files, so a crafted pickle gave straight RCE and read the flag back through the save endpoint.
- CTF
Infinity
A Kahoot-style websocket quiz that leaks the scoreboard after every guess, which can be turned into an answer oracle. Analyzed but not implemented.
- CTF
Stray
A length check meant for single-character input was bypassed by passing the query parameter as an array, opening a path traversal to flag.txt.
- CTF
Cheerio
A URL-preview endpoint that fetched any address and handed back a chosen element, which made it a clean SSRF into the internal network and cloud metadata.
- CTF
SMB
Enumeration of an SMB host: protocol, encryption, domain, and SIDs. Recon only, no flag in my notes.
- CTF
Finger
An exposed finger service leaked a user, and that user’s plan field held the flag.
- CTF
Web 1
The flag was sitting in the 403 error page, and again in a custom Server response header.
- CTF
Stonk
A stock trading server backed up your portfolio under load, but restored it after a posted trade had already deducted stock, so the trade came through for free.
- CTF
Discord Bot
A calculator Discord bot ran user input through eval behind a substring blacklist, which fell to string splitting and hex escapes.
- Vuln
Improper Validation of Specified Quantity in Sourcecodester CHMS
A vulnerability was found in SourceCodester Card Holder Management System 1.0 and classified as problematic. Affected by this issue is some unknown …
- Vuln
Improper Access Control in SourceCodester IMS (Password Handler)
The Password Handler (edit_update.php) in SourceCodester Inventory Management System 1.0 trusts a client-supplied user_id, allowing a user to modify an account …
- Vuln
SQL Injection in SourceCodester IMS (edit_sell.php)
The up_pid parameter in edit_sell.php of SourceCodester Inventory Management System 1.0 is concatenated into a SQL query unsanitized, allowing remote, …
- Vuln
SQL Injection in SourceCodester IMS (sell_return.php)
The pid parameter in sell_return.php of SourceCodester Inventory Management System 1.0 is used in a SQL query unsanitized, allowing remote, unauthenticated SQL …
- CTF
Password Protected
A dictionary attack against a raw-socket login prompt that did not land.
- CTF
duck-cord
An unbounded read into the number buffer overflowed into the adjacent message buffer, letting me pose as the system user.
- CTF
Word Game
A pattern-matching word game with two SQL injection points, neither of which I got past a wall of 500 errors. Unsolved.
- CTF
BCAGPT
A chatbot front end whose prompt field fed straight into a SQL query.
- CTF
Too Fast
A GIF of a scribbled-over QR code, recovered by stacking every frame so the gaps filled each other in.
- CTF
Flag+
The paywall trusted the Referer header, so swapping free.html for paid.html handed over the flag.
- CTF
Not Today
The endpoint released the flag only for a request stamped with one specific date, so I set it by hand.
- CTF
Interpreted Arduino I
The flag prints once at boot, before you attach to the serial console, so rebooting while connected catches it.
- CTF
Unionize
UNION-based SQL injection against a SQLite-backed school lookup, enumerating the schema one column at a time.
- CTF
Lottery
The JWT signing secret was exposed, so I forged a token that smuggled an eval payload into the username array.
- CTF
RESTful Swap
The author left Vim running, so the server source leaked through a .swp file.
- CTF
Rick and Morty
Creds on the page and in robots.txt fed a webshell, where less beat a cat blacklist and sudo less finished it.
- CTF
Space Jam
A webshell led through sudo find and a SUID cp to the root flag.
- CTF
Fortune
An NFS share leaked an SSH key, a cipher and a cracked zip gave users, and no_root_squash planted a SUID bash.
- CTF
B3dr0ck
A raw TCP service handed out a TLS key and cert, mutual TLS opened a shell, and layered encoding plus CrackStation gave root.
- CTF
Offline
An SMBv1 host fell to EternalBlue for SYSTEM, then RDP admin for the king server.
- CTF
Mr. Robot
A WordPress brute force off a robots.txt dictionary gave a shell, and SUID nmap gave root. Three keys.
- CTF
Carnage
SQLi on 81 and a double-extension upload bypass on 82 gave a duku shell and several web-root flags.
- CTF
Anonymous
A writable FTP script on a timer gave a shell, and SUID env gave root.
- CTF
Hackers
Anonymous FTP and hydra gave SSH, a cookie-equals-password page gave a webshell, and python cap_setuid gave root.
- CTF
Internal
WordPress theme injection, an SSH-tunnelled Jenkins, and a note in /opt chained to root across two hosts.
- CTF
Tyler
A file-upload webshell, an SMB share with creds, and SUID vim writing sudoers gave root.
- CTF
Wonderland
A hidden path leaked creds, a sudo module hijack and a PATH-hijacked SUID stepped through users, and perl setuid gave root.
- CTF
H1: Easy
Default CMS creds and two PHP upload points reached serv3, then a writable cron gave root.
- CTF
Jack
A WordPress plugin privesc gave a shell, a readable SSH key gave a user, and a writable module in a root cron gave root.
- CTF
Lion
An outdated nostromo server on 8080 had a public RCE for a user shell.
- CTF
Res
An unauthenticated Redis wrote a PHP webshell, then SUID xxd read root.
- CTF
Production
Anonymous FTP leaked an SSH key, then a sudo su chain and sudo git reached root.
- CTF
HaskHell
A Haskell class site ran uploaded code, and sudo flask run finished the box.
- CTF
Panda
hydra found SSH, WordPress gave a shell, and sudo ftp with a SUID find reached root.
- CTF
Bookstore
REST API v1 fuzzing leaked a debugger PIN, the Werkzeug console gave a shell, and a SUID binary reversed to a XOR check.
- CTF
Hogwarts
SQL injection on two portals gave SSH creds, then sudo date and SUID ip to root.