当前位置:首页 » 编程语言 » union关键字进行SQL绕过
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

union关键字进行SQL绕过

发布时间: 2023-06-17 02:24:05

1. sql语句union

sql中union用于合并两个或多个 SELECT 语句的结果集。


需要注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。


SQL UNION 语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2


以图中表格为例:

列出所有在中国和美国的不同的雇员名:


SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

结果

E_Name

Zhang, Hua

Wang, Wei

Carter, Thomas

Yang, Ming

Adams, John

Bush, George

Gates, Bill


这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。

如果需要显示全部值,则使用UNION all。


列出在中国和美国的所有的雇员:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

2. 怎么绕过简单的sql防

《Web安全之SQL注入攻击技巧与防范》:

http://www.plhwin.com/2014/06/13/web-security-sql/

二、 几种绕过姿势

下面列举几个防御与绕过的例子:

例子1:addslashes

防御:

绕过:

文件的63行开始可以看到,此处将传入的%27和%2527都进行删除处理,也就是还没传入数据库前就已经被该死的程序吃了,但是在67行看到他还吃了*,这样我们就有办法了,我们构造%*27,这样程序吃掉星号*后,%27就会被传入。

payload:

  • http://localhost/injection/user.php?id%3D1%*27%*20and%*20%*271%*27%3D%*271

  • (id=1' and '1'='1-->id%3D1%*27%*20and%*20%*271%*27%3D%*271)

    参考:

    《phpcms_v9.6.0_sql注入与exp》:

    https://zhuanlan.hu.com/p/26263513

    3. sql注入 form过滤怎么绕过

    我常用的三种方法:
    1,参数过滤,过滤掉 单引号,or,1=1 等类似这样的 。
    2,使用 参数化方法格式化 ,不使用拼接SQL 语句。
    3,主要业务使用存储过程,并在代码里使用参数化来调用(存储过程和方法2结合)

    4. sql语句中union关键字的意义和用法

    union用于简单联合查询;
    select stuid,stuname from student
    union
    select teaid,teaname from teacher
    输入所有的学生和老师的ID和编号

    5. sql语句中union关键字的意义和用法

    UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。 SELECT Date FROM Store_Information
    UNION
    SELECT Date FROM Internet_Sales 注意 ,如果我们在任何一个 SQL 语句 (或是两句都一起) 用 "SELECT DISTINCT Date" 的话,那我们会得到完全一样的结果。