Home/HTB/Blinded — HTB Challenge

Blinded — HTB Challenge

retleave·Apr 21, 2026·9 min read

Blinded — HTB Challenge

Info

  • Category: Pwn
  • Difficulty: Hard

Introduction

Blinded is a blind exploitation challenge that distills heap corruption to its absolute minimum: a single-byte write at an attacker-controlled index, repeated in a loop, with zero feedback beyond an initial banner. The binary has Full RELRO, PIE, and no output primitive. The exploit must be delivered as a single precomputed payload -- there is no interactive feedback loop.
The attack leverages a subtle C operator precedence bug to unlock negative indices, then chains heap metadata corruption into overlapping allocations that reach the dynamic linker's writable segment. From there, it forges a fake ELF symbol table entry and corrupts stdin's vtable pointer to trigger dso_find_for_object, which resolves through the forged symbol and jumps to a one-gadget. This is the same class of attack described in ret2dso research, applied here under maximally constrained conditions.

Vulnerability Analysis

The Binary

The vulnerable function is deceptively simple:
c
size_t vuln() {
    size_t size;
    int i;
    char c;
    if (scanf("%zu %d %hhd", &size, &i, &c) < 3 || size > 0x3e8 || !(0 <= i < size))
        _exit(EXIT_FAILURE);
    char* ptr = malloc(size);
    ptr[i] = c;
    free(ptr);
    return size;
}

Content Locked

This challenge is still active on HackTheBox. The full writeup will be available after retirement.