PHP的一个EVAL的利用防范 |
本文标签:EVAL 作者:phpeval 前段时间一个程序出的问题 。就和这差不多 。 复制代码 代码如下:<?php $code="${${eval($_GET[c])}}"; ?> 对于上面的代码 。如果在URL提交http://www.phpeval.cn/test.php?c=phpinfo(); 就可以发现phpinfo()被执行了 。而相应的提交c=echo 11111; 发现1111也被输出了 。这个代码被执行了 。 (好些PHP的代码在写文件的时候 。都没有注意到这一点 。他们在代码中写php的文件的时候 。把代码加在双引号之内 。然后过滤掉双引号 。认为这样就不能执行了 。实际上是可以的 。) 复制代码 代码如下:<?php $code=addslashes($_GET[c]); eval(""$code""); ?> 提交 http://www.site.cn/test.php?c=${${phpinfo()}}; phpinfo()就被执行 。如果提交 这样的话,d后面的代码也被执行 。 |