English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 业界动态 >> PHP的一个EVAL的利用防范

 

PHP的一个EVAL的利用防范

威盾防火墙 2014-12-10

 

前段时间一个程序出的问题。就和这差不多。


复制代码
代码如下:

<?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()就被执行。如果提交
http://www.site.cn/test.php?c=${${eval($_GET[d])}};&d=phpinfo();

这样的话,d后面的代码也被执行。

解决方法:

eval函数减弱了你的应用的安全性,因为它给被求值的文本赋予了太多的权力。强烈建议不要使用eval函数。


相关内容: 最新内容:
phpcms2008 代码执行 批量getshell EXP(使用菜刀)[2014-12-10]
防范 dedecms 广告内容插入后门[2014-12-10]
记一次发现利用preg_replace隐藏后门和后续探究[2014-12-10]
分享PHP场景中getshell防御思路[2014-12-10]
PHP一句话Webshell变形总结[2014-12-10]
XSS攻击汇总 做网站安全的朋友需要注意下[2014-12-10]