Security

Posts in this category

Posts

  • The CSC 2026 Payslip Portal: Three Bugs Where the File You Can Write Is the File You Run

    Part two of the CSC 2026 finals. After the ransomware recovery came the attack-and-defence round, and one service fell to a chain of three — an unauthenticated CBC cookie became a padding oracle that forged an HR role, an HR-only template preview handed the live PDF generator to a Go template and turned it into a file write, and that file write landed on the one Go source the service re-interprets on every payslip.

    13 min read 2,576 words Category: Security Tags: ctf, web, cryptography

  • Reversing the CSC 2026 Ransomware Unlocker: A Fake gdb, a Salt Born in a SIGTRAP Handler, and an Invertible Check

    How our team recovered the files a CTF ransomware encrypted at the CSC 2026 finals, by reversing the 4.9 KB unlocker it left behind, finding the salt it computes only inside a SIGTRAP handler, inverting its flag check, and rebuilding its SHA-256 and RC4 key schedule in Python, then restoring 43 files on six hosts from the organisers' inventory with a runbook and two scripts.

    20 min read 3,908 words Category: Security Tags: ctf, reverse engineering, ransomware

  • Binary Hardening on Linux: What Canaries, NX, ASLR, RELRO, FORTIFY and CET Actually Stop

    A tour of the compiler, linker and kernel mitigations inside a modern Linux binary, what each one prevents and does not prevent, and how to verify all of them with readelf, objdump and checksec.

    16 min read 3,078 words Category: Security Tags: binary security, linux, compilers

  • conero: Spending One Note Eight Times Because the Subgroup Check Is in the Wrong Function

    A write-up of the blockchain challenge conero from the Codegate 2026 qualifiers, where a patched geth implements Monero-style ring signatures, writes a careful canonical-key-image check, and then verifies proofs in a function that never calls it — so one note yields eight key images and drains the pool.

    9 min read 1,724 words Category: Security Tags: ctf, blockchain, cryptography

  • Small ROS: Eighty-One Random-Oracle Equations That Collapse Into One Subset-Sum

    A write-up of the crypto challenge Small ROS from the m0leCon 2026 finals, where choosing the rows of an overdetermined random-oracle system turns eighty of its equations into coordinate lookups, leaves one, and reduces the whole verifier to a modular subset-sum that a lattice solves.

    9 min read 1,712 words Category: Security Tags: ctf, cryptography, lattices

  • A Post-Quantum Cryptography Primer: Shor, Grover, ML-KEM and the Hybrid Handshake

    Which parts of today's cryptography a large quantum computer would break, what NIST standardised in FIPS 203, 204 and 205, how X25519MLKEM768 protects TLS 1.3 sessions, and how to try ML-KEM yourself with OpenSSL 3.5.

    13 min read 2,406 words Category: Security Tags: cryptography, post quantum, tls

  • flagchecker3: A Bytecode VM That Decrypts Itself Only If You Already Know the Flag

    A write-up of the Android reversing challenge flagchecker3 from VSLCTF 2026, where the native checker runs a bytecode VM whose instruction stream is XOR-encrypted under a key that every comparison result feeds back into, so a wrong byte derails the decryption and turns the obfuscation into an oracle.

    8 min read 1,474 words Category: Security Tags: ctf, reverse engineering, android

  • Elliptic Curves from Scratch: Group Law, Double-and-Add and a Toy ECDH

    Building elliptic-curve cryptography up from the chord-and-tangent rule to scalar multiplication and a working Diffie–Hellman exchange on a 103-point curve, then showing exactly why that curve is worthless.

    10 min read 1,848 words Category: Security Tags: cryptography, elliptic curves, python

  • King Halo: When a Zero-Knowledge Circuit Forgets to Constrain the Path Length

    A write-up of the crypto challenge King Halo from WannaGame Championship 2025, where a Halo2 Merkle circuit verifies a path without constraining its length, so an empty path reduces the whole proof to leaf equals root and membership is never proved at all.

    6 min read 1,062 words Category: Security Tags: ctf, cryptography, zero knowledge

  • CO: A Cubic Surface, a Hyperplane Section, and a Flag Collected One Small Prime at a Time

    A write-up of the crypto challenge CO from WannaGame Championship 2025, where the group lives on a cubic surface in projective 3-space, a hyperplane through the given points cuts it into an ordinary elliptic curve, and the same secret scalar reused across attacker-chosen primes falls to Pohlig-Hellman and the CRT.

    8 min read 1,528 words Category: Security Tags: ctf, cryptography, elliptic curves

  • Interesting Signing: One Byte Into the Modulus, Then an Orthogonal Lattice Factors It

    A write-up of the crypto challenge Interesting Signing from WannaGame Championship 2025, where a one-byte overflow into the RSA modulus turns the CRT recombination into a linear equation over the integers, and ten of those equations let an orthogonal lattice recover the private CRT coefficients and factor a 3072-bit modulus.

    9 min read 1,704 words Category: Security Tags: ctf, cryptography, rsa

  • Trust Across Virtual Hosts: Resuming a TLS 1.3 Session Past mTLS, Then a Signed Plugin to RCE

    A write-up of the web challenge Trust from WannaGame Championship 2025, where a TLS session cache shared between two nginx virtual hosts lets a ticket from the public site skip client-certificate checks on the employee site, and a plugin upload that verifies a signature but extracts appended data and symlinks plants a JSP shell.

    6 min read 1,120 words Category: Security Tags: ctf, web security, tls

  • just-exit: Getting a Shell by Asking for a Syscall That Is Forbidden

    A write-up of the pwnable challenge just-exit from DreamHack CTF Season 7, where every modern mitigation is on and the exploit is a single byte, because the seccomp filter answers a denied syscall with SIGSYS and the program's SIGSYS handler calls system.

    6 min read 1,010 words Category: Security Tags: ctf, pwn, linux

  • ABN Gallery: The Host a Checker Reads and the Host a Socket Dials

    A write-up of the web challenge ABN Gallery from DreamHack CTF Season 7, where a hand-written host extractor and the runtime's own URL parser disagree about what "0" means, and that one character of disagreement turns an SSRF guard into a path traversal on the flag.

    7 min read 1,396 words Category: Security Tags: ctf, web, ssrf

  • A Raspberry Pi Bench for UART, SPI and I²C

    Turning a Raspberry Pi into a hardware lab, with wiring and logic levels, enabling the buses, reading a firmware console with pyserial, dumping an SPI flash with spidev, and the safety rules that keep both boards alive.

    11 min read 2,143 words Category: Security Tags: hardware, raspberry pi, embedded

  • An Android App Security Assessment Checklist

    A static-to-dynamic walkthrough for assessing an Android app you own, from APK structure and exported components to storage, network security config and certificate pinning, mapped to OWASP MASVS.

    11 min read 2,081 words Category: Security Tags: mobile security, android, owasp

  • KVM from the Ground Up: VMX, EPT and a Guest in a Hundred Lines of C

    How hardware virtualization splits the CPU into root and non-root modes, how EPT translates guest memory, and what a minimal /dev/kvm program teaches about where the hypervisor attack surface really is.

    12 min read 2,299 words Category: Security Tags: virtualization, kvm, systems security

  • A Minimal Linux Kernel Module, and How to Read the Oops When It Breaks

    Building and loading an out-of-tree module, crossing the user/kernel boundary safely with copy_from_user, and decoding the oops and stack trace that a kernel-mode mistake produces.

    11 min read 2,007 words Category: Security Tags: linux kernel, systems, c

  • From Reflected XSS to a Real Content-Security-Policy

    How script injection actually happens, why output encoding and CSP are different layers, and how to roll out a nonce-based policy without breaking production.

    9 min read 1,797 words Category: Security Tags: web security, xss, csp