zl程序教程

您现在的位置是:首页 >  后端

当前栏目

20、注入篇--绕过与防范措施

注入 -- 20 绕过
2023-09-27 14:29:29 时间

绕过 过滤

注释符绕过

​ MYSQL中的注释符

  • 单行注释:–空格 或 #
  • 多行注释:/* 多行注释的内容*/

可以利用 or ‘1’ = '1 闭合单引号

剔除了or和and的绕过

  • MySQL去大小写不敏感
  • MySQL支持十六进制
  • and --> && or–> ||
  • 内联注释 (内联中的语句会当作sql语句执行) /*! 内联注释*/

策略

  • 大小写变形
  • 使用注释的方式 an/**/d
  • 双写绕过 anandd
  • 符号替换 and --> && or–> ||

去除空格的绕过

​ 使用URL编码 空格的URL编码为%20 %09(tab键)

使用SQLmap

​ sqlmap -u “URL” --hex --dbs --batch

  • –hex 对payload进行16进制编码
  • –batch 默认选项

剔除union和select的绕过

​ 大小写绕过 双写绕过

防范措施

代码层面

  1. 对输入进行严格的转义和过滤
  2. 使用预处理和参数化
  3. 白名单
  4. 黑名单
  5. 规范输出
  6. 敏感字符过滤

网络层面

  1. 通过WAF设备
  2. 云端防护

PHP转义+过滤

预处理+参数化