Skip to content
Advertisement

What does # mean in sql?

Does anyone know what something like OR 1# means in the context of mysql injection?

Advertisement

Answer

It is MySQL’s version of the line comment delimiter. In standard SQL, the line comment delimiter is --.

So in the context of SQL injection, if the attacker knows you’re using MySQL he may use it to abruptly terminate the malicious SQL statement, causing MySQL to ignore whatever is behind the # and execute only the stuff that comes before it. This is only effective against single-line SQL statements, however. Here’s an example:

Input:

Username: fake' OR 1#
Password: pass

Resultant SQL:

Which is executed as this, which returns every row:

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement