提前感谢您的帮助。
我正在使用用户开发的应用程序。它会提示您搜索某些内容,然后执行基本查询:
SELECT * FROM Table
WHERE Entry=[ENTRY];
我不能改变那种格式。我所能做的就是修改[ENTRY]的文字。有没有办法可以在不修改语句本身结构的情况下提取多条记录?例如:
SELECT * FROM Table
WHERE Entry='COW | APPL* | ROO*';
获得结果:
COW, APPLE, APPLES, ROOF, ROOM, ROOSTER;
请原谅最基本的例子 - 谢谢,
布雷克
答案 0 :(得分:3)
这完全取决于代码。如果有可能,可以使用Sql注入方法请求多个记录。
SELECT * FROM Table
WHERE Entry='COW' OR Entry ='APPL' OR Entry = 'ROO';
按照此示例,您的变量[ENTRY]应为:
[ENTRY] = "'COW' OR Entry ='APPL' OR Entry = 'ROO'";
注意,如果您的[ENTRY]变量受到sql注入保护,那么这将不起作用。
编辑: 所以这是一个不知道表名的SQL注入方法: 这应该是你要复制的字符串:
COW' OR 1 = '1
答案 1 :(得分:2)
如果开发人员没有阻止sql注入,您可以尝试添加;
并创建一个新查询。
如果您可以将=
更改为IN
。
答案 2 :(得分:2)
如果允许SQL注入,您可以在用户输入字段中输入SQL查询,如下所示:
COW' OR Entry = 'APPL%' OR Entry = 'ROO%
这应该使SQL语句看起来像:
SELECT *
FROM Table
WHERE Entry='COW' OR Entry = 'APPL%' OR Entry = 'ROO%';
答案 3 :(得分:0)
想出来..现在我的问题是我不知道用户称之为列的问题lol。
如果我知道“入境”是什么,我会这样做:
[Entry] = COW' OR WHERE Entry='APPL*' OR WHERE Entry='ROO*
以便最终的SQL语句为:
SELECT * FROM Table
WHERE Entry='COW' OR WHERE Entry='APPL*' OR WHERE Entry='ROO*';
给我我想要的东西。