pwnhard
cppub
miptctf
C++ vector iterator invalidation after erase() leads to OOB read. Fake std::string spray converts OOB into arbitrary read (heap leak, libc leak via unsorted bin, stack leak via environ). Tcache poisoning redirects allocation to stack for ROP chain. system('/bin/sh') gives shell. glibc 2.35, no __free_hook.
$ ls tags/ techniques/
heapoob_readcpppwniterator_invalidationvector_erasefake_stringtcache_poisoningsafe_linking_bypassenviron_leakstack_ropglibc_2.35arbitrary_read
iterator_invalidation_oobfake_std_string_arbitrary_readtcache_poisoning_stackenviron_stack_leaksafe_linking_decryptrop_chain_on_stack
🔒
Permission denied (requires tier.pro)
Sign in to access full writeups
Create a free account with GitHub, then upgrade to Pro.
$ssh [email protected]