exploit-memory-corruption
Skill27 starsChanged 31 days agoMITView on GitHub
Turn a memory-corruption bug in a native binary into code execution — stack overflows, format strings, and ROP against modern mitigations. Load when you control input to a compiled program and it crashes or misbehaves: a network daemon, a thick client, a setuid/SUID helper, or extracted firmware. Signals: segfault on long/`%n` input, a crash with control of a register, no source, checksec output, "exploit this binary/service".
3 other projects use a version of this.
Adopted by
Most recently taken up by
- NoorQureshi/roninword for word, first seen Oct 11, 2026
- NoorQureshi/SploitAgentword for word, first seen Oct 11, 2026
- TaiMaBenJi/taima-skillsword for word, first seen Oct 11, 2026
Other versions3 projects use a version of this.
Word for word · 3
- NoorQureshi/ronin★ 26100% same
- NoorQureshi/SploitAgent★ 26100% same
- TaiMaBenJi/taima-skills★ 1100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository207 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- ad-adcsSkill
- ad-dacl-abuseSkill
- ad-delegation-abuseSkill
- ad-kerberoastingSkill
- ad-pivot-arsenalSkill
- ai-agent-tool-abuseSkill
- ai-insecure-output-handlingSkill
- ai-jailbreakSkill
- ai-llm-dosSkill
- ai-mcp-securitySkill
- ai-model-extractionSkill
- ai-prompt-injectionSkill
- ai-rag-poisoningSkill
- ai-sensitive-data-disclosureSkill
- ai-supply-chainSkill
- ai-system-prompt-leakageSkill
- api-auth-attacksSkill
- api-bolaSkill
- api-fuzzingSkill
- api-graphqlSkill
- api-grpcSkill
- api-mass-assignmentSkill
- api-mongo-agg-facet-bypassSkill
- api-testing-checklistSkill
- api-versioningSkill
- automation-browserSkill
- automation-nuclei-templatesSkill
- automation-recon-pipelineSkill
- cloud-azureSkill
- cloud-container-escapeSkill
- cloud-docker-api-abuseSkill
- cloud-docker-registrySkill
- cloud-gcpSkill
- cloud-iam-privescSkill
- cloud-imds-ssrfSkill
- cloud-kubernetesSkill
- cloud-s3-exposureSkill
- code-review-cicdSkill
- code-review-cppSkill
- code-review-dangerous-sinksSkill
- code-review-dotnetSkill
- code-review-goSkill
- code-review-iacSkill
- code-review-javaSkill
- code-review-methodologySkill
- code-review-nodejsSkill
- code-review-phpSkill
- code-review-pythonSkill
- code-review-rubySkill
- code-review-rustSkill
- code-review-secrets-detectionSkill
- code-review-soliditySkill
- crypto-oracle-attacksSkill
- crypto-rsa-attacksSkill
- ctf-cryptoSkill
- ctf-forensicsSkill
- ctf-methodologySkill
- ctf-pwnSkill
- The first 60 shown.
The file
Files
Memory-corruption exploitation
When it applies
You have a native binary or service on an authorized target that mishandles your input — a
network-facing daemon, a thick-client, a setuid helper found during privesc, or a binary carved
from firmware (reverse-eng-firmware). reverse-eng-binary-triage located the bug; this skill turns
that crash into controlled execution. Pentest-only — this is destructive and can crash the service.
Why it works
C/C++ has no memory safety: writing past a buffer overwrites saved return addresses and pointers, and a user-controlled format string reads/writes arbitrary memory. Redirect execution to your code or to existing code (ROP) and the process does your bidding. Modern mitigations (NX, ASLR, PIE, stack canaries) don't remove the bug — they shape the technique.
Method
- Check protections first —
checksec ./bin(orpwntools): NX, PIE, RELRO, canary. This decides everything. No canary + NX → ROP; PIE → you need a leak; no PIE, no NX → maybe shellcode. - Find the offset — send a cyclic pattern (
cyclic 200/ pattern_create), crash it undergdb+GEF/pwndbg, read the value in$rip/$eip, andcyclic -l <value>for the exact offset to the saved return address. - Pick the primitive by protections:
- ret2win — a target function already in the binary; overwrite the return address with it.
- ret2libc / ROP — with NX, chain gadgets: leak a libc address (call
puts(puts@got)via the PLT), compute the libc base, return tosystem("/bin/sh")or aone_gadget. Build gadgets withROPgadget/ropper, the chain withpwntoolsROP(). - Format string (
printf(user)) — leak stack/canary/PIE base with%p, then do arbitrary writes with%n(GOT overwrite → redirect a call tosystem).fmtstr_payloadautomates it.
- Defeat mitigations with leaks — ASLR/PIE need a leaked address (from a format string or an info-leak bug) to rebase; a stack canary must be leaked (or brute-forced byte-by-byte on a forking server) and replayed in your overflow so the check passes.
- Build it with pwntools — a repeatable script:
process()/remote(),recvuntil, pack withp64(), stage the leak, then send the final chain; iterate locally, then fire at the target. - Land a shell — reuse
payloads-reverse-shellsfor what to run once you have execution.
Gotchas
- Match the exact libc — remote exploitation fails on the wrong libc version/offsets; identify it
(leaked addresses → a libc-database lookup) before computing
system/one_gadget. - Bad bytes —
\x00,\x0a,\x20can truncate input depending on the read function; check and avoid them in addresses/payload. - Local works, remote doesn't — environment/stack alignment differs; the
movapsalignment crash beforesystemis fixed by an extraretgadget. - This crashes the target — it's inherently disruptive; only on authorized pentest targets, never a live bug-bounty production service, and note the risk in the RoE.
Verify success
Reliable control of execution demonstrated on the target — a returned shell, a run command, or a
controlled $rip with a working ROP chain — reproducible from your pwntools script.
References
pwntools docs & tutorials; checksec; GEF/pwndbg; ROPgadget/ropper; one_gadget; libc-database.
Find the bug with reverse-eng-binary-triage; shell payloads in payloads-reverse-shells.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

