天天看点

二次urldecode注入

如果在网站中使用了urldecode或者rawurldecode函数,则会导致二次解码生成单引号而引发注入。

原理是我们提交参数到WebServer时,WebServer会自动解码一次,假设目标程序开启了GPC,我们提交/1.php?id=1%25%27,因为我们提交的参数里面没有单引号,所以第一次解码后的结果为id=1%27,%25解码的结果是%,如果程序里面使用了urldecode或者rawurldecode函数来解码id参数,则解码后的结果是id=1'单引号成功出现引发注入。

tips:

可以通过搜索urldecode和rawurldecode函数来挖掘二次urldecode注入漏洞。

%25编码会成为%

%27编码会成为'

浏览器会把非字母数字进行编码,而"%"+"字母的ascii码的十六进制"解码会成为对应的字母

例如%61就会被解码为a