有评论时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不运行的主要内容,如果未能解决你的问题,请参考以下文章

WordPress通过Ruby评论重述

评论和评论回复的mysql结构

TFS 发布部署评论

WordPress 评论被爆了

Facebook 评论插件 - 每个页面都有相同的评论

python自动化开发-[第二十二天]-bbs多级评论点赞上传文件