盲注型 SQL 注入(Blind SQL Injection) 是一种特殊类型的 SQL 注入攻击。与“普通 SQL 注入”不同,盲注不会在页面上直接返回数据库中的敏感数据或错误信息,攻击者无法通过页面输出判断注入是否成功。
简单来说:
你看不到数据库的“回答”,但可以通过“页面的反应”来一点点猜出数据。
UNION SELECT 后,页面直接显示用户名、密码等数据攻击者就像在“盲操作”,靠逻辑判断来推断数据库内容。
通过页面返回的是“真”还是“假”来推断。
示例:
?id=1 AND 1=1 -- 页面正常
?id=1 AND 1=2 -- 页面异常
说明存在注入点。
进一步猜测数据:
?id=1 AND substring(database(),1,1)='a'
aa当页面不返回任何差异时,用延迟响应来判断。
示例(MySQL):
?id=1 AND IF(1=1, SLEEP(5), 0)
常用于:
利用数据库报错间接获取数据(如 extractvalue、updatexml)。
✅ 隐蔽性强(不易被发现)
✅ 不需要页面回显数据
❌ 攻击效率低(需大量请求)
❌ 容易被 WAF / 限流拦截
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM user WHERE id = ?"
);
ps.setInt(1, id);
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。