// Offense

Explore Web Exploitation

A quote gets closed early, and the rest of your query becomes someone else's command.

Everyone knows about SQL injection. It's still in the OWASP Top 10 after 25 years, still turning up in fresh CVEs against Django and Rails, still the thing that makes an incident response team drop everything. That gap — between 'universally known' and 'still exploited at scale' — is where the actual learning happens, not in memorizing another payload list.

You'll work through why admin'-- breaks a login form, then push past it: why a stored procedure that concatenates SQL internally is just as exposed as raw string-building in your app code, why an ORM's .where() clause can quietly accept a fragment it should have parameterized. Nugget sketches the query on the whiteboard as data flows in — where it's meant to stop being data and start being structure — so you can point to the exact line where that boundary collapses, in SQL and in a browser's DOM alike.

None of this replaces your coursework or a real pentest engagement. It's a place to sit with the reasoning until 'sanitize your input' stops being a slogan and starts being a specific claim you can test.

// What a session feels like

You bring the questions. Nugget asks the next one.

  • Nugget diagrams a login query on the whiteboard with the username field highlighted, then asks you to trace what admin'-- does to the WHERE clause before you touch a terminal.
  • In the Docker lab, you fire UNION-based requests at a vulnerable endpoint while Nugget asks what column count you're guessing at and why the error messages are telling you that.
  • Nugget pulls up a real CVE against Django's JSONField via web lookup and has you find the exact construct that let query logic slip past the ORM's parameterization.

Start exploring Web Exploitation tonight — a 30-day trial, cancel anytime.

Start your 30-day trial