: Only allow expected characters and formats.
: This part attempts to "break out" of the existing SQL command. The closing parenthesis ) is used to close a function or a nested query that the developer originally intended. {KEYWORD}) UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL#
: This is the core of the attack. The UNION operator combines the results of two or more SELECT statements into a single result set. ALL ensures that duplicate rows are kept. : Only allow expected characters and formats
To protect your application from this type of attack, you should avoid building queries using simple string concatenation. Instead, use: : This is the core of the attack
If this payload successfully returns a blank page instead of an error, it confirms to a tester that the application is vulnerable. From there, they can replace the NULL s with commands to extract sensitive data, such as: Usernames and passwords. Database version and configuration details. The entire contents of specific tables. How to Prevent It
: This is a common reconnaissance technique. An attacker uses NULL values to determine the exact number of columns returned by the original query. If the number of NULL s doesn't match the original column count, the database will usually throw an error. By adding or removing NULL s, an attacker can find the correct structure.