
Loading

Loading
We use strictly necessary cookies to run this site, and analytics cookies to understand how it's used. See our Privacy Policy for details.
SQL injection has been a top vulnerability category for two decades. Where it actually hides in a modern application, and why automated scanning alone keeps missing it.
SQL injection has been on every major vulnerability list for over two decades, and it still shows up in real assessments, not because developers don't know what it is, but because it hides in the places a team isn't actively looking: an internal admin tool, a legacy endpoint nobody's touched since it shipped, a "temporary" report-builder feature that concatenates a filter value straight into a query. OWASP's own A05:2025 Injection category, the umbrella SQL injection sits under, remains one of the most prevalent and most severe categories in the Top 10 for exactly this reason.
Most teams know the fix: parameterized queries (prepared statements) instead of string concatenation. What actually causes SQL injection to persist despite that is inconsistency, not ignorance, one ORM-generated query is safe, but a hand-written report query three files away concatenates a sort-column parameter directly because "it's just a column name, not user data" (until someone passes something else in it). Stored procedures that build dynamic SQL internally, legacy code predating the team's current standards, and third-party or vendor-supplied modules are the recurring sources we actually find it in.
A scanner can flag an obvious reflected SQL error, but it routinely misses blind and second-order injection, cases where the application doesn't visibly error out, or where the injected value is stored and only becomes exploitable somewhere else in the application later. Confirming exploitability, not just flagging a suspicious pattern, is what separates a real finding from a false positive, and that confirmation is manual work.
This is core scope in every Penetration Testing and Web & API Security engagement, and exactly the kind of finding a secure code review catches earlier, before it ever reaches production. For the broader discipline of what separates manual testing from automated scanning, see our companion piece on manual vs. automated penetration testing.
Tell us about your environment and goals, we'll help you scope the right engagement.