实验环境:php5.2、Apache
实验原理:当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能够控制这个字符串,将造成代码注入漏洞
实验步骤:
实验一:
1.php代码如下:
<?php
$data=$_GET['data'];
echo preg_replace("/test/e",$data,"just test");
?>
2.在前端给data传值,执行结果如下:
实验二:
1.php代码如下:
<?php
$data=$_GET['data'];
eval("\$ret=$data;");
echo $ret;
?>
2.在前端给data变量传值,执行结果如下:
实验三:
1.php代码如下
<?php
$data=$_GET['data'];
eval("\$ret=strtolower('$data');");
echo $ret;
?>
2.在前端给data变量传值:22');phpinfo();//,执行结果如下: