#ql在sql中意味着什么?

mun*_*nch 17 mysql sql syntax comments

有谁知道OR 1#在mysql注入的上下文中有什么意思?

Bol*_*ock 39

这是MySQL的行注释分隔符的版本.在标准SQL中,行注释分隔符是--.

-- This is a standard SQL comment.
# This is a MySQL comment.
Run Code Online (Sandbox Code Playgroud)

因此,在SQL注入的上下文中,如果攻击者知道您正在使用MySQL,他可能会使用它突然终止恶意SQL语句,导致MySQL忽略其背后的任何内容#并仅执行之前的内容.但是,这仅对单行SQL语句有效.这是一个例子:

输入:

用户名:fake' OR 1#
密码:pass

结果SQL:

SELECT * FROM users WHERE username = 'fake' OR 1#' AND password = 'pass'
Run Code Online (Sandbox Code Playgroud)

这是执行的,它返回每一行:

SELECT * FROM users WHERE username = 'fake' OR 1
Run Code Online (Sandbox Code Playgroud)