温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是盲注SQL注入

发布时间:2026-10-16 12:35:42 来源:亿速云 阅读:117 作者:小樊 栏目:数据库

盲注 SQL 注入(Blind SQL Injection) 是一种特殊类型的 SQL 注入攻击。和“普通 SQL 注入”不同,盲注场景下:

服务器不会直接返回数据库中的错误信息或查询结果,攻击者只能通过页面的“表现差异”来推断数据库内容。


一、为什么叫“盲注”

  • “盲”:你看不到数据库返回的数据或报错
  • 只能靠:
    • 页面是否正常(True / False)
    • 响应时间长短
    • 状态码变化

来“猜测”数据库里的信息


二、盲注的常见类型

1️⃣ 布尔盲注(Boolean-based Blind SQLi)

通过构造条件,观察页面是否“有变化”。

示例:

?id=1 AND 1=1   -- 页面正常
?id=1 AND 1=2   -- 页面异常

说明:AND 1=2 为假,影响了查询结果。

推断数据库信息:

?id=1 AND substring(database(),1,1)='a'
  • 如果页面正常 → 第一个字符是 a
  • 如果异常 → 不是 a

2️⃣ 时间盲注(Time-based Blind SQLi)

利用数据库“延时函数”判断条件是否成立。

MySQL 示例:

?id=1 AND IF(1=1, SLEEP(5), 0)
  • 如果页面延迟 5 秒 → 条件为真
  • 否则 → 条件为假

推断示例:

?id=1 AND IF(substring(database(),1,1)='a', SLEEP(5), 0)

3️⃣ 报错盲注(Error-based,但信息有限)

有时虽然不回显数据,但会暴露一点点差异(如长度、状态码)。


三、盲注和普通 SQL 注入的区别

对比项 普通 SQL 注入 盲注 SQL 注入
是否回显数据 ✅ 直接显示 ❌ 不直接显示
利用难度 低 高
自动化工具 容易 必须脚本/工具
常见利用 UNION SELECT 布尔 / 时间推断

四、盲注的危害

  • 拖库(慢慢猜出用户名、密码)
  • 获取管理员权限
  • 配合其他漏洞造成严重安全事故

五、如何防范盲注

✅ 使用 参数化查询(预编译语句)
✅ 最小权限数据库账号
✅ 关闭详细报错信息
✅ WAF + 输入校验
✅ 定期安全测试


如果你愿意,我也可以:

  • 给你一个 盲注实战示例
  • 讲 如何用 Python 自动化盲注
  • 或对比 CTF 中的盲注题思路

你想看哪一个?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手