{keyword}' And (select Chr(100)||chr(85)||chr(102)||chr(83) From Sysibm.sysdummy1)=chr(100)||chr(85)||chr(102)||chr(83) And 'ikjv'='ikjv -
If the page loads, the answer is "Yes." If it fails, the answer is "No." By repeating this, they can extract entire databases character by character. How to Prevent This
If the website loads normally, the attacker knows the database processed the "True" statement ( dUfS = dUfS ) successfully. If the page loads, the answer is "Yes
The reference to SYSIBM.SYSDUMMY1 is a dead giveaway that the target is an IBM DB2 database. This is a special "one-row, one-column" table used to perform calculations or retrieve system values. This is a special "one-row, one-column" table used
CHR(100)||CHR(85)||CHR(102)||CHR(83) translates to the string "dUfS" .The code asks the database: "Does dUfS equal dUfS?" Since this is always true, the database will process the request without an error. If you are a developer, seeing this in
The attacker is attempting to "trick" the database into running a command that was never intended by the website's developers.
If you are a developer, seeing this in your logs means someone is scanning your site for holes. You can stop these attacks by using (Prepared Statements). This ensures the database treats input as "just text" rather than executable code, rendering the single quotes and CHR commands harmless.
