有评论时MySql Query不运行
Posted
技术标签:
【中文标题】有评论时MySql Query不运行【英文标题】:MySql Query not run when there is a comment 【发布时间】:2017-08-06 03:31:27 【问题描述】:我正在尝试通过将 SQL 代码插入输入空间来模拟对我自己的数据库的 SQL 注入攻击。
我的SQL代码是:
SELECT * FROM Users
WHERE username = '...'
AND password = '...';
其中 ... 是输入。
我正在尝试使用以下输入来选择每个用户并将输出限制为 1。
这是用户名输入:
' OR ''='
这应该得到所有的用户名。
这里是密码输入:
' OR ''='' LIMIT 1; --
这应该先获取所有密码,然后限制输出只有1行,然后注释最后的';
所以执行的代码应该是这样的:
SELECT * FROM Users
WHERE username = '' OR ''=''
AND password = '' OR ''='' LIMIT 1; -- ';
由于某种原因,这不起作用。我正在使用 SequelPro,它告诉我它正在运行 2 个查询并且没有输出任何内容。第二个查询是-- ';
但是,如果我删除最后一部分并一直运行到第一个分号,它会起作用并从数据库中检索单个用户。
发生了什么事?
【问题讨论】:
我认为错误很明显。您正在尝试运行两个查询,但 API 只允许 1。您需要删除中间的分号。 阅读 php mysql api 和多个语句。这是不允许的 哦,我明白了,谢谢。不过我很困惑,因为第二个分号只是一个注释。我没有意识到这也算是另一种说法? 【参考方案1】:您的查询没问题,而您遇到的问题来自 SequelPro,它的解析器似乎是一个直截了当的解析器,它对另一个查询进行了评论。
为了避免这种混淆,最好从伪造的输入中取出尾随分号
【讨论】:
以上是关于有评论时MySql Query不运行的主要内容,如果未能解决你的问题,请参考以下文章