Hour three: exploit development. I crafted payloads slowly, watching responses for the faintest change in whitespace, an extra header, anything. One payload returned a JSON with an odd key. I chased it into a file upload handler that accepted more than it should. The upload stored user data in a predictable path—perfect for the next step.
The final hour was spent polishing the report. I wrote an executive summary that explained impact in plain language, then a technical section with reproducible steps. Each finding had a risk rating, reproduction steps, code snippets, and suggested fixes. I cross-checked hashes and timestamps, then uploaded the report. oswe exam report
Adrenaline pushed me to move logically, not recklessly. From that foothold I chained a local file read to discover configuration secrets. One value—an API key—opened an internal endpoint that exposed a debug interface. The debug console let me run code in a restricted context; I used a timing side-channel to exfiltrate a small secret that unlocked remote command execution. The moment the server executed my command, I felt equal parts elated and exhausted. Hour three: exploit development
I documented every step as I went: the exact requests, the payloads, the timing, and why one approach failed while another succeeded. The exam wasn't a race to the first shell; it was a careful record of reasoning. I took screenshots, saved raw responses, and wrote clear remediation notes—how input validation could be tightened, how templates should be sandboxed, and which configuration flags to change. I chased it into a file upload handler