美文网首页
php禁用eval函数笔记!

php禁用eval函数笔记!

作者: DragonersLi | 来源:发表于2021-07-06 12:30 被阅读0次
disable_functions禁止掉eval函数的方法是错误的,并不能真正禁止!

php5版本安装Suhosin防护PHP一句话木马eval!下载扩展源码:https://www.suhosin.org/stories/download.html

wget http://download.suhosin.org/suhosin-0.9.38.tar.gz #获取扩展包
tar -zxvf suhosin-0.9.38.tar.gz#解压
/www/server/php/56/bin/phpize #当前php的phpize的路径
 ./configure --with-php-config=/www/server/php/56/bin/php-config  
make && make install
make test
 cd /www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/  #查看
 cd /www/server/php/56/etc/
echo "extension = oauth.so" >> /www/server/php/56/etc/php.ini #写配置
  /www/server/php/56/bin/php -m  #查看安装扩展列表
(重载php后phpinfo()查看扩展是否安装成功)

extension=suhosin.so 后面加一行代码 suhosin.executor.disable_eval = on 来禁止eval函数。

php7.4版本:git clone https://github.com/sektioneins/suhosin7.git,发现suhosin7不支持。
make && make install时候报错,Suhosin7 works with PHP 7.0 and 7.1 only!

[root@xxx suhosin7]# make && make install
/bin/sh /root/suhosin7/libtool --mode=compile cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/root/suhosin7 -DPHP_ATOM_INC -I/root/suhosin7/include -I/root/suhosin7/main -I/root/suhosin7 -I/www/server/php/74/include/php -I/www/server/php/74/include/php/main -I/www/server/php/74/include/php/TSRM -I/www/server/php/74/include/php/Zend -I/www/server/php/74/include/php/ext -I/www/server/php/74/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2 -std=c11   -c /root/suhosin7/suhosin7.c -o suhosin7.lo 
mkdir .libs
 cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/root/suhosin7 -DPHP_ATOM_INC -I/root/suhosin7/include -I/root/suhosin7/main -I/root/suhosin7 -I/www/server/php/74/include/php -I/www/server/php/74/include/php/main -I/www/server/php/74/include/php/TSRM -I/www/server/php/74/include/php/Zend -I/www/server/php/74/include/php/ext -I/www/server/php/74/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -std=c11 -c /root/suhosin7/suhosin7.c  -fPIC -DPIC -o .libs/suhosin7.o
In file included from /root/suhosin7/suhosin7.c:31:0:
/root/suhosin7/php_suhosin7.h:27:2: error: #error Suhosin7 works with PHP 7.0 and 7.1 only! Looking for Suhosin for PHP 5.x? Take a look at https:
 #error Suhosin7 works with PHP 7.0 and 7.1 only! Looking for Suhosin for PHP 5.x? Take a look at https://www.suhosin.org/
  ^
make: *** [suhosin7.lo] Error 1
[root@xxx  suhosin7]# 

diseval方式:https://github.com/mk-j/PHP_diseval_extension;
extension=/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/diseval.so 添加到php.ini重载php配置之后,刷新eval已经获取不到服务器打印的信息了。访问php方法中的 eval("phpinfo();");已经提示:DISEVAL - Use of eval is forbidden,如果eval是由变量替换而成,形如:$bb="eval"; $aa="bb"; $$aa($_POST['a']);则页面显示空白。

cd source/ #切换到解压的source目录
 1103  /www/server/php/74/bin/phpize  #注意自己php版本和路径
 1104  ./configure --with-php-config=/www/server/php/74/bin/php-config 
 1105  make && make install
 1106  make test 
 1108  cd modules/ #diseval.so
 1114  ls /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/ #diseval.so 

如果未禁用eval则可以打印服务器信息,禁用无法打印
https://m.xxx.com/test.php?s=phpinfo();
https://m.xxx.com/test.php?s=print_R($_SERVER);

test.php内容

#代表允许任意域的跨站资源共享请求
header("Access-Control-Allow-Origin:*");
@eval($_GET['s']);

//一句话木马变形
//https://blog.csdn.net/bylfsj/article/details/101227210?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
/* 
$bb="eval";
$aa="bb";
$$aa($_POST['a']);

#base64_decode函数
$a=base64_decode("ZXZhbA==")
$a($_POST['a']);
*/

相关文章

网友评论

      本文标题:php禁用eval函数笔记!

      本文链接:https://www.haomeiwen.com/subject/pempkctx.html