sql server 从左侧截取不固定长度_SQL注入学习笔记2

我们来继续SQL注入的学习,第一次的笔记我们学习的是SQL union联合注入和报错注入,这两种注入都有明显的数据回显。也就是说,我们通过注入让数据库的信息回显在页面中。在真实的渗透过程中,有时候我们碰到的网站常常不会输出这些信息,而遇到这种不回显的页面,我们又怎么进行SQL注入呢?

这次笔记的介绍的就是两种不回显SQL注入,布尔注入与时间注入。


布尔注入

布尔值就是用于判断真和假的一个逻辑变量,布尔注入,顾名思义,就是通过返回页面的真假识别我们SQL注入语句的正确性。

a. 应用场景

布尔注入的应用首先要求页面存在SQL注入漏洞,但是注入条件比union注入更苛刻一些,因为页面不会回显数据,也不会回显错误信息。

页面会返回True或者False,来帮助我们判断我们注入的SQL语句判断是否正确。

当然,所谓的True或者Flase,并非就真的是直接返回真和假,是正常的页面和非正常的页面,下面会通过sqli-labs-master靶场的注入来详细说明。

b. 布尔盲注方法

left()  # 注入语句:left((select database()),1)>'s'  # 函数说明:left(a,b)从左侧截取a的前b位  regexp  # 注入语句 select user() regexp '^r'  # 函数说明:正则表达式的用法,regexp为匹配user()的正则表达式  like  # 注入语句:select user() like 'ro%'  # 函数说明:与regexp类似,使用like进行匹配  substr()  # 注入语句:ascii(substr((select database()),1,1))=98  # 函数说明:substr(a,b,c)从b位置开始,截取字符串a的c长度,ascii()将某个字符串转换为ascii值  mid()  # 注入语句:ord(mid((select database()),1,1))=114  # mid()的作用与substr()相似

c. 靶场演示

此次实验演示的靶场是sqli-labs-master第8关

我们先来看看靶场环境的正常页面

http://localhost/sqli-labs-master/Less-8/?id=1

页面显示如下

9b04aeb9aebc6c1fecd488399b1a9506.png

然后加个引号,返回的就是错误页面

http://localhost/sqli-labs-master/Less-8/?id=1

<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值