我试图通过将SQL代码插入输入空间来模拟我自己的数据库上的SQL注入攻击。
我的SQL代码是:
SELECT * FROM Users
WHERE username = '...'
AND password = '...';
其中......是输入。
我正在尝试使用以下输入来选择输出为1的每个用户和LIMIT。
以下是用户名输入:
' OR ''='
这应该获取所有用户名。
这是密码输入:
' OR ''='' LIMIT 1; --
这应首先获取所有密码,然后将输出限制为仅1行,然后评论最终';
因此执行的代码应如下所示:
SELECT * FROM Users
WHERE username = '' OR ''=''
AND password = '' OR ''='' LIMIT 1; -- ';
由于某种原因,这不起作用。我正在使用SequelPro,它告诉我它正在运行2个查询而不输出任何内容。第二个查询为-- ';
但是,如果我删除了最后一个部分并且只运行到第一个分号,它就可以运行并从数据库中检索单个用户。
发生了什么事?
答案 0 :(得分:0)
你的查询没问题,你遇到的问题来自SequelPro,解析器看起来很生硬,对另一个查询发表评论。
为避免这种混淆,最好从伪造输入中取出尾随分号