🛑 前言:知其然,更要知其所以然
面试安全岗时,面试官问:“你知道 SQL 注入的原理吗?”
如果你回答:“我会用 sqlmap -u 一把梭。” 那你大概率会挂。
如果你回答:“我写过一个自动化检测脚本,通过布尔盲注检测页面 Content-Length 的变化来判断……” 面试官的眼睛会发光。
SQL 注入的核心逻辑其实非常简单:输入 -> 拼接 -> 报错/差异 -> 确认漏洞。
🏗️ 一、 核心原理:它是如何发现漏洞的?
我们的Mini-SQLMap主要基于两种检测方式:
- 报错注入检测 (Error Based):
- 发送单引号
'或双引号"。 - 检测响应内容中是否包含
MySQL Error,Syntax error等关键词。
- 布尔盲注检测 (Boolean Blind):
- 发送
AND 1=1(逻辑真):页面应该正常。 - 发送
AND 1=2(逻辑假):页面应该变空、变短或缺少某些元素。 - 对比两次的响应长度,如果差