Day2 SQL注入之盲注

盲注

使用场景

页面无法显示数据库的记录, 只有正常页面和异常页面(即无回显点)
我们只能一点一点去猜

分类

布尔盲注

返回true和false

时间盲注

  1. sleep()根据睡眠时间判断
  2. BENCHMARK(count,expr)重复执行count次执行表达式expr。可以被用于计算MYSQL处理表达式的速度,结果值通常为0
  3. 笛卡尔积(cross join 隐式)
  4. GET_LOCK(str,timeout):设法使用字符串str给定的名字得到一个锁,超时为timeout秒(长链接,且可以开两个会话)

注入语句

截取函数(用于猜测表名,列名等)

length(str): 计算长度
substr(str,pos,length) :截取指定位置指定长度的字符串
ascii(substr(database(),1,1) =107: 查询ascii码中对应的值
substring(str FROM pos FOR length):防止逗号截断
substring_index(str,delim,count):返回查找字段出现次数的前一个位置
mid(str,pos,length):截取函数
right(str,length):从右边开始截取
left(str,length):从左边开始截取
在这里插入图片描述

逃逸函数

有时在网页中不能输入引号等各种特殊符号,这时可以利用ascii进行转换
ascii(str)/ord(str): 返回字符串第一个字符的ascii吗,字符串则返回引号的ascii码

配合函数

  1. 配合if条件触发
    IF(expr1,expr2,expr3)
    如果expr1是TRUE(expr1<>0 and expr1<>NULL ),则IF()的返回值为expr2;否则返回值则为expr3。IF()的返回值为数字值或字符串值,具体情况视其所在语境而定
select * from table where id=1 and if(database()=' ',sleep(4),NULL)
  1. 配合select case when条件触发,也可以用于逃过逗号截断
    case when condition then result 类似于if/else语句
select case when username='admin'THEN 'aaa' ELSE(sleep(3)) end from user;

时间盲注

判断注入点

利用sleep(duration)如果反应时间与我们想要他sleep的时间相近,就说嘛sleep函数进入了数据库且被执行,那么就可以判断出有注入点

select * from user where id=1 and sleep(1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值