一、绕过给危险字符加反斜杠的过滤
本示例包含三层过滤:第一层将反斜线替换为双反斜线;第二、三层分别对单引号和双引号进行转义(即在引号前添加反斜线)。由于数据库采用 GBK 编码,可利用宽字节注入原理绕过。
直接注入测试发现单引号已被转义。在 URL 中单引号(%27)前插入 %BF,结合反斜线(%5C),形成 %BF%5C%27。在 GBK 编码下,%BF%5C 会被解析为一个汉字,导致后面的 %27(单引号)不再被视为转义符,从而还原出单引号。
最终 SQL 语句变为:
SELECT * FROM users WHERE id='-11 縗' union select * from users where id =3-- ' LIMIT 0,1
成功突破转义函数限制。
利用步骤
- 确认数据库字符集为 GBK。
- 构造宽字节字符(如 %BF)覆盖转义符。
- 利用编码特性使引号脱离转义状态。


