Purpose
Scans crawl corpus JSON for serialized data magic bytes and patterns across Java, PHP, and Python. Java findings generate ysoserial command strings for manual use. PHP sends a harmless stdClass payload and checks for a 500 response. Python candidates are flagged for manual inspection. Java and Python payloads are not executed automatically.
Output
deser/results-<timestamp>.json— per-endpoint findings with language, pattern matched, and ysoserial command (Java only).
CLI
mg-deser acme-bounty
mg-deser acme-bounty --concurrency 5
Notes
- Run mg-crawl first; this tool reads crawl corpus files from disk.
- Java findings include a ysoserial command string; you supply the gadget chain and execute manually.
- PHP active probing sends a minimal serialized object; does not attempt RCE payloads.
- Python candidates require manual verification; no active probe is sent.