0x00 概述
union注入是一种简单有效的注入方式,以前只是套公式或者sqlmap刷,此文简述其原理(侧重点在union select)。
0x01 union注入
环境:sqli-labs
1. 判断列数
order by / group by
union select 要求两个表查询的字段数必须相同,否则报错(列名以第一个select为准)
2. 使原数据查询为空
如id=2改为id=-2或id=2000000查询不存在的数据则为空,就可以显示要查询的敏感数据(防止正常数据干扰)
3. 使用1,2,3,4,5占位
如union select 1,2,3,4,5判断出可以显示的位置(显示位),如果要求字段类型也要相同,则使用null代替数字。
4. 将数字替换成敏感数据
如union select 1,2,user(),database(),5
0x02 sqli-labs lesson 1
字符型注入
1. 判断列数
3对4错,列数3
Id=1‘ group by 3– –
2. 使原数据查询为空&&数字占位
Id=-1’ union select 1,2,3– –
显示位2 3
3. 替换显示位为敏感数据
id=-1′ union select 1,user(),database()– –
0x03 结语
union注入方便高效。
LSA Blogger 2018/09/07 10:38
更多关于SQL注入的文章,请搜索sql注入
Tom 2018/09/07 10:51
Easy to understand.