针对场景:
waf对输入的特殊字符进行转义,且在转义操作之后存在编码函数

 sqli-二次编码注入

 

常规注入:

用户输入【1%27】=>php自身编码【1’】=>php检查到单引号,触发函数,进行转义【1\’】=>带入sql语句【select * from users where ID=’1\’’】=>不能注入

 

二次编码注入:

用户输入【1%2527】=>php自身编码,%25转换成%【1%27】=>php未检查到单引号,不转义【1%27】=>遇到一个函数编码,使代码进行编码转换【1’】=>带入sql语句=>能注入

 

关键:编码函数的位置,必须在转义函数之后,带入sql语句之前,sql语句中%27并不会转换成单引号,如图

 sqli-二次编码注入

 

 

0x2 方法

 sqli-二次编码注入

0x3 防御

不能说用了一次转义函数就认为非法字符的危害被消除了

在带入sql语句前都要进行转义

相关文章:

  • 2022-12-23
  • 2021-04-29
  • 2021-09-20
  • 2021-07-21
  • 2022-12-23
  • 2021-07-23
  • 2022-02-19
  • 2022-01-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
  • 2021-09-16
  • 2022-02-26
  • 2021-11-24
相关资源
相似解决方案