Welcome
Recognize successive Base62, Base58, and Base32 alphabets and decode the layered message with explicit base conversion.
hotwater / research archive
Exploitation, analysis and challenge solutions. Find the technique behind the flag.
202 writeups
Recognize successive Base62, Base58, and Base32 alphabets and decode the layered message with explicit base conversion.
Follow a competition collaboration post and coupon clue, distinguishing the successful lead from misleading QR codes.
Chain a Next.js middleware bypass, Server Action SSRF, and a mismatched route check to reach restricted portal data.
Read a deterministic triangle judge's canonical answers and reproduce its hash-derived keystream without playing the rounds.
Recover an Android vault's passcode and key derivation from the APK, then decrypt its default ledger offline.
Search a wordlist-and-PIN password space, derive each AES key with MD5, and validate candidate plaintext padding.
Translate a seccomp BPF filter into constraints and solve the overlapping argument windows that validate the input.
Recover an appended secret one byte at a time by aligning controlled input against repeated AES-ECB blocks.
Reverse an APK's oath and environment-dependent token derivation to reproduce the clean-device AES decryption.
Read an E01 image's chunk structures directly and recover the captain's deleted log from the filesystem evidence.
Identify an embedded Godot export, inspect two flag-shaped strings, and distinguish the platform-confirmed result from a placeholder.
Investigate dynamic profile-attribute updates to find how the application permits an unintended authority change.
Separate a Windows checker's decoy prefix from its real token chain, then reconstruct the stages leading to the flag.
Analyze faulty elliptic-curve computations in the supplied output to recover the private value used as the flag.
Reverse a Windows bytecode VM and its hash check, then reconstruct the authorization key that decrypts the flag.
Follow a portal's fallback-route clues to a department JSON endpoint and recover the challenge's protected data.
Combine historical-map clues with blue-channel LSB data and ship metadata to reconstruct the three-part vault code.
Recover a Java loader's embedded keys, decrypt its runtime class, and reconstruct the token-and-seal vault derivation.
Recover deleted SQLite ciphertext, retrieve a salt from an ADB backup, and combine passphrase fragments for decryption.
Correlate navigation logs, database waypoints, and image metadata to distinguish the real landfall from planted diversions.
Analyze a four-dimensional algebra over a composite modulus and exploit its structure to recover the encrypted data.
Read a Unity assembly's static arrays and reproduce its repeating-key XOR to decrypt the flag without running the game.
Reduce a four-byte key search with meet-in-the-middle sums, then verify the recovered key against independent checksums.
Recover an ECDSA nonce-leakage model from diagnostic data and use the recorded parameters to reconstruct the secret key.
Follow mock social profiles, image metadata, and a deleted configuration diff to open the hidden cache archive.
Reverse an RV32IM recovery fixture and reconstruct sensor, power, and RF state to recover the sealed handover records.
Trace a small ledger API's access checks to identify the request path that exposes the protected record.
Reproduce an export from the captured dispatch data and hash the exact bytes produced by the supplied exporter.
Use the supplied FROSTLANG bench kit to understand thaw plans and investigate the live controller's hidden behavior.
Decode SPI and NOR evidence, emulate the controller ROM, and reconstruct the restore key for a ChaCha20-Poly1305 capsule.
Recover a remote stack canary, locate the flag path, and dump the ELF to complete a blind ROP exploit.
Recover unreachable Git history and deleted environment data to reconstruct the key for a sealed manifest.
Analyze a Rust proof checker for a way to export a proof of falsehood despite its intended logical restrictions.
Navigate a controller's staged firmware trial, boot diagnostics, and confirmation logic to reach the protected state.
Combine a stack overflow, stack/libc disclosures, and a write primitive to plant a path before opening the flag file.
Correlate five field-relay artifacts to reconstruct the interrupted export and recover the missing receipt evidence.
Inspect the static site's client-side logic and embedded assets to uncover the hidden data without a backend.
Use the telemetry endpoint's one-bit responses to reconstruct the alignment information needed by the challenge.
Use crash and output behavior to recover a remote stack canary, locate the binary base, and reach its hidden win function.
Compare two lossless thermal patrol recordings and reconstruct the evidence carried across their frames.
Model the register machine and its hidden ratchet job to reason about how each submission changes the next state.
Use a length-prefixed overflow and canary oracle to build a blind ROP exploit, separating decoy flags from the real result.
Locate the runtime-initialized data and reverse the embedded bytecode checker to reconstruct its accepted input.
Trace the cold archive's request flow and access boundaries through a sequence of observed API interactions.
Recover a remote stack canary, dump the binary with SROP, and build the final file-reading ROP chain.
Distinguish committed NAND state from a corrupt later page, then recover the volatile evidence needed to open the archive.
Analyze the thaw controller's arithmetic limits and maintenance override rather than relying on ordinary temperature requests.
Read the chart's verification marks, order the selected hexadecimal characters, and reconstruct the dial code.
Work through a ten-stage archive chain in which each recovered answer unlocks the next sealed record.
Bypass a Flask label-preview filter to reach server-side template evaluation and recover the challenge flag.
Recover tombstoned registry values from freed copy-on-write pages and reconstruct the purged release code.
Trace the boundary between Frostline Edge and vaultd to understand how sealed manifests control vault access.
Recover evidence from a disk image by tracing filesystem artifacts and reconstructing the hidden data chain.
Reconstruct a field-log batch from recovered address and memory evidence, checking the exact exported bytes.
Exploit a length-prefixed stack overflow using a fork-stable canary oracle and a syscall-only ROP chain.
Recover evolving frame keys from public braid states and shuffled anchors, then decrypt the seven-frame exchange.
Analyze a low-density Merkle–Hellman knapsack and use its superincreasing structure to recover the hidden message.
XOR two visual secret-sharing images to reveal information that neither share exposes on its own.
Recover hidden LCG state from truncated high-bit observations, then reconstruct the low-byte encryption stream.
Use a leaked stack address and two controlled reads to construct an exploit against a small static binary.
Investigate a restricted shell-like service's command vocabulary and use the accepted behavior to recover its hidden data.
Analyze a custom AES variant and checksum cryptogram to recover the key material needed for the protected message.
Reassemble a TCP stream across sequence-number wraparound while distinguishing injected duplicate segments.
Exploit a stack overflow in the dispatch service and use the provided runtime to construct a ret2libc chain.
Investigate a self-contained Solana swap emulator and construct the account arrangement its program expects.
Exploit a smooth group order to solve a Diffie–Hellman discrete logarithm and reconstruct the shared secret.
Apply Wiener's continued-fraction attack to an RSA key whose private exponent is deliberately too small.
Recover a hidden bitstream from a GIF's red-channel least-significant bits across its animation frames.
Chain partial-nonce ECDSA recovery with the later oracle stages to solve Lunar CTF's Shattered Oracle challenge.
Reconstruct a routing incident's BGP changes and follow the exfiltration evidence across the affected sessions.
Use the known relationship between two low-exponent RSA plaintexts to recover the message through polynomial arithmetic.
Use the supplied exploit notes to understand an introductory stack overflow and its flag-recovery path.
Reconstruct a sectioned evidence container using image clues and related artifacts from the supplied bundle.
Use a crafted Solana cross-program invocation to exhaust the compute budget of the target transaction.
Use leaked high bits of an RSA prime to formulate the small unknown part for a Coppersmith-style recovery.
Inspect a PNG's palette indices and reproduce a palette transformation that reveals the concealed image.
Recover a weak time seed, reproduce its LCG-derived AES key, and decrypt the captured ciphertext.
Use statistical inference against a noisy one-bit sounding interface to reconstruct the hidden symbols.
Analyze MONOVM3 matrices and a stripped executable to recover the missing rotation index.
Exploit a PIE binary's shared record structure and session behavior to reach the protected state.
Use a remote format-string sink and short service interactions to construct the Mirage exploit.
Reconstruct a chat conversation from asset requests recorded in a packet capture of a Cloudflare-fronted app.
Use a plaintext matrix's known trace and determinant to recover information from matrix-based RSA encryption.
Investigate the manifest feedback terminal's format-string behavior and construct the corresponding binary exploit.
Use timing differences in a small hardware VM's debugger to infer information hidden by its instruction interface.
Investigate a hash-based firmware signer whose handling of leaf zero undermines its one-time-signature guarantees.
Recover an LCG's unknown multiplier and increment from consecutive outputs, then reconstruct its XOR keystream.
Build a heap exploit against the supplied glibc runtime, using tcache poisoning to overwrite the free GOT entry.
Analyze an EVM audit registry and vault contract to reconstruct the access path exposed by their interaction.
Analyze a stripped shard runtime and its companion agents to reconstruct the vault's chained byte-level checks.
Exploit an adaptive instruction classifier's trust decision to bypass checks on a program's later behavior.
Analyze WebAuthn attestation validation across three formats to find the inconsistency in the relying party's checks.
Use a hidden gopher-capable feed override to make an internal report request and recover the result from a rendered PDF.
Recover a source tree from an exposed Git directory by walking loose objects from HEAD without a directory listing.
Decode a Base85 message in network incident artifacts to recover the flag hidden in plain sight.
Exploit heap reuse in a multithreaded C++ service to cross the boundary between separate session objects.
Inspect a hardware-equivalence sign-off workflow to find how a sabotaged netlist passes its verification process.
Restore a PNG's truncated height field so that the image data hidden below its advertised dimensions becomes visible.
Analyze a singular curve whose group structure reduces the custom cryptosystem to a simpler arithmetic problem.
Combine ciphertexts sharing one RSA modulus using Bézout coefficients for coprime public exponents.
Analyze approximate-decryption leakage in a CKKS-style service to recover the encryption key.
Construct executable input for a service that maps attacker-supplied bytes into an executable memory region.
Exploit repeated low-exponent RSA messages with known linear padding across three different moduli.
Recover an RSA private exponent beyond Wiener's bound using the small-root structure behind the Boneh–Durfee attack.
Use a one-bit RSA-CRT signing fault and a correct signature to factor the modulus with a greatest-common-divisor calculation.
Reconstruct exfiltrated data from BGP COMMUNITY attributes distributed across eight UPDATE messages.
Exploit biased ECDSA nonces in captured secp256k1 session attestations using the parameters recorded in the handout.
Reconstruct hidden panel output from a DOS ROM by analyzing its display data and bitplane organization.
Reconstruct the two APKs' shared decryption process by combining their assets and tracing the native memfd exchange.
Locate the control flow in a stripped static ELF and reverse its validation without function symbols.
Exploit the structure of a trusted setup and its published powers to recover the hidden scalar and challenge plaintext.
Recover an exact rational response function from versioned observations and anchors, then evaluate its 24 target inputs.
Reconstruct a committed note and attachment record from four encoded evidence strings at the requested export boundary.
Correlate container artifacts with an incident timestamp to identify the token belonging to the correct running instance.
Use the structure of a sparse mathematical change to recover hidden information from the supplied generator and output.
Trace a derivative's manifest ancestry back to the original capture and recover the six evidence fields the case requires.
Correlate surviving industrial telemetry to recover a missing report from a device declared permanently offline.
Analyze a suspicious smart-lighting diagnostic report and its supporting artifacts to reconstruct hidden mesh evidence.
Reverse the transformations in a 32-byte input checker and reconstruct an input that satisfies its arithmetic conditions.
Use reverse image search and a nearby landmark reference to identify the market recorded in the supplied solution.
Inspect HTTP traffic in a packet capture and reconstruct the final message from the recorded requests and responses.
Inspect the competition's flag-format rule for concealed content that is not visible in its ordinary presentation.
Recover hidden polynomial information from shuffled finite-field shares and use it to open the AES-GCM ciphertext.
Correlate Windows spool metadata, print data, and a scanned page to reconstruct the evidence behind a print job.
Recover stale values from an older registry format whose cell descriptors retain evidence after deletion.
Reverse two cooperating Android apps whose native libraries exchange memory-backed halves of an encrypted payload.
Reconstruct RAID5 layout and interrupted-write evidence, then recover the material needed to open the sealed report.
Inspect a tiny static ELF's raw-syscall checker and reconstruct its accepted input from the validation logic.
Reverse a custom LZMA-style range encoder and recover the 32-byte input matching its fixed compressed output.
Compare a regression model's deletion evidence with its retraining claim to recover information that should have disappeared.
Recover a hidden client contribution from weighted updates to a federated linear-regression model.
Analyze Slab's remote protocol and memory behavior to construct the interaction that recovers the protected result.
Reverse a handcrafted ODEX-like container and its AArch64 code rather than relying on standard ART parsing.
Reverse a stripped ELF's recurrence-based validation and reconstruct the input accepted by the checker.
Recover hidden values from thousands of noisy multiplier observations by exploiting their mathematical structure.
Recover fourteen hidden atoms from modular subset-sum observations and reconstruct the binary selection masks.
Reconstruct surviving archive jobs from the binary's catalogue and job cards to recover the historical data.
Reverse a second-order cellular automaton to recover the 32-byte input expected after its long evolution.
Reverse a stripped ELF's arithmetic predicate to recover the exact 16-byte input that satisfies its ledger check.
Analyze a polynomial-ring evaluation service and its public output to recover the information hidden by the challenge.
Recover deleted evidence from a small NTFS image by examining surviving filesystem journal records.
Relate two RSA moduli to recover the private information needed to decrypt a ciphertext under the first key.
Recover ten secret weights from modular totals by exploiting the structure of the published linear constraints.
Combine journal recovery, network reconstruction, nonce reuse, and audio decoding to recover an authenticated OTA payload.
Exploit the algebraic structure of a finite-field permutation instead of treating its twenty rounds as a black box.
Analyze a handset app's dispatch protocol and maintenance path to reconstruct the privileged interaction.
Reassemble 24 fixed-size payloads in slot order and verify the resulting 576-byte message by its SHA-256 hash.
Trace writable registry state and its attestation workflow to understand the path to the protected artifact.
Investigate a fresh-process remote service and reconstruct the interaction needed to solve its low-level state checks.
Place restricted headers in HTTP/2 CONTINUATION frames to bypass checks applied only to the initial HEADERS frame.
Exploit inconsistent interpretation of signed CBOR capabilities across a Node broker and Python vault service.
Decrypt successive QUIC key phases, reassemble the accepted upload, and derive the flag from its exact file bytes.
Trace a client-rendered application's JavaScript and API behavior to uncover its hidden access path.
Exploit missing employee-record authorization and use a leaked debug reference to reach the protected information.
Reconstruct the hidden alphabet and verify the recovered evidence using the supplied AES-GCM authentication check.
Investigate a blind Schnorr signing service and its connection-specific parameters to recover the challenge result.
Reverse an app's whisper validator and reconstruct the input that passes its hidden checks.
Inspect PNG palette and chunk data to recover information hidden inside an apparently noisy indexed-color image.
Investigate a legacy problem-search endpoint to recover a hidden test case from the application's exposed behavior.
Chain template injection, forged TPM attestation, a leaked SSH key, and a symlink race to reach both protected flags.
Extract covert data from two devices in an unencrypted MQTT capture and reconstruct their hidden message.
Analyze a smart-home MQTT capture for device-specific covert channels and combine the recovered data.
Analyze a line-oriented controller protocol to reach the factory maintenance path intended for on-site technicians.
Trace the Flaguard solution and its recorded submission result, explaining the checks that lead to the accepted flag.
Reverse an Android diagnostic app's native validation to recover the response expected by a smart-bulb challenge.
Work around a root-run warden's decoys and recovery logic to reach the real user and root flag files.
Correlate watchdog recovery with repeated AES-CTR nonces to reconstruct an earlier protected response.
Trace document pins and shifted indexes to explain why the public export exposes a supposedly private block.
Extract a PNG and text fragment from a sensor-log container; the proposed final flag remains checker-unconfirmed.
Recover a DOCX's deleted revisions, decode its hidden archive, and read the flag from trailing whitespace.
Combine PDF metadata, an appended encrypted ZIP, and an orphan object to recover a pad-protected message.
Reconstruct a nested networking incident's evidence chain, including its encoded flag-format conventions.
Analyze Orisond's binary command protocol and address disclosures to reconstruct the exploit's memory interaction.
Inspect a nested archive's manifest before following deeper decoys; the useful result is already in its playlist file.
Extract a ZIP appended to a MIDI file, then read a hidden bitmap from the recovered PNG's top pixel rows.
Follow JPEG metadata and embedded content to reconstruct the evidence hidden by the double-exposure challenge.
Recover an ECDSA key from nonces with eight missing high bits by formulating the resulting lattice problem.
Correlate incident artifacts to reconstruct the consent and access activity behind a data-security investigation.
Inspect a packet capture and reconstruct the flag carried by its recorded communication.
Trace a storefront discount and its bank integration to acquire the protected vault deed despite a limited starting balance.
Use a JWT key-identifier path traversal to sign an editor token with a known public stylesheet.
Analyze a LiME memory capture from a ransomware incident to recover the material needed to decrypt a locked document.
Reverse a linear cellular automaton, recover its packed state, and reconstruct the input expected by the simulator.
Reverse the countersign attestation protocol and build a protocol-only solver for its 24-byte RUN payload.
Investigate repository artifacts beyond the clean commit history to recover the missing carrier token.
Reverse an Android password manager and its backend interaction to recover information hidden by the app's UI.
Analyze the MURMUR mesh control-channel profile and its captured traffic to reconstruct the protected communication.
Use a vulnerable preview fetcher to inspect internal documentation, derive a dated endpoint, and decode its returned gift.
Trace an AWS-style cloud integration's IAM permissions to identify the privilege-escalation path available to its starting identity.
Recover a deleted message by investigating the gap in a SQLite message table and the surrounding evidence.
Trace an uploaded DjVu file through an outdated ExifTool parser to explain the challenge's command-execution path.
Inspect a filesystem image with read-only ext tools to reconstruct evidence left by sudo zip and shred activity.
Follow a PNG's metadata through a protected appended ZIP, then decode the extracted image's hidden bitstream.
Investigate roulette wager arithmetic to reach the required balance without relying on a normal sequence of winning spins.
Examine a Caesar-cipher challenge note and its recorded answer, with the missing derivation made explicit.
Trace a simulated gateway's SSRF and JWT trust boundaries to reconstruct the route into its admin console.
Follow an introductory IDOR trail and change the boarding-pass API's object reference to retrieve the admin record.
Analyze a local network's traffic and available interception tools to recover the hidden wireless-network evidence.
Challenge note only: the preserved prompt does not yet document a solution, exploit, or verified result.
Examine how a chatbot's retrieval layer exposes restricted documents and use the leaked material to solve the challenge.
Inspect a mobile QA build and its supporting data to reconstruct the forgotten access path.
Escalate a restricted Kubernetes service account through the registry portal to reach the cluster's protected secret.
Try another CTF event.