上一篇介绍了 SQL 注入的基础知识,并讲解了 Less-1、Less-2。本文继续分析 Less-3、Less-4,重点关注它们不同的闭合方式。
0. 前情回顾
还记得 SQL 注入 01讲过的字符型注入闭合的 4 种常见的方法吗?
闭合的方法主要有4种:用 '、"、')、") 闭合参数(如id=-1',id=-1"))
在开始正文之前,大家可以自己动手试试 Less-3、Less-4
1. Less-3
本关的 SQL 语句为:
$sql = "SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
- 注入类型:字符型注入(参数被单引号和括号包裹)
- 闭合方式:参数
id需要使用')闭合
正确闭合 id 后,判断字段数、确认回显位和查询数据等步骤与 Less-1 完全相同,这里不再赘述
。
2. Less-4
本关的 SQL 语句为:
$id = '"' . $id . '"';
$sql = "SELECT * FROM users WHERE id=($id) LIMIT 0,1";
- 注入类型:字符型注入(参数被双引号和括号包裹)
- 闭合方式:参数
id需要使用")闭合
正确闭合 id 后,后续步骤同样与 Less-1 完全相同。
3. 总结
Less-3 和 Less-4 的核心区别只在于闭合符号:Less-3 使用 '),Less-4 使用 ")。当一种闭合方式无效时,不要盲目重复尝试,而应根据报错信息和页面回显,还原参数在原 SQL 中的完整结构,再选择合适的引号与括号进行闭合。





