PHP命令执行

1.eval

<?php
$moon=$_GET['moon'];
eval("\$a=$moon;");
?>

2.assert上述代码eval换成assert也可以 3.preg_replace:若是在正则表达式匹配(pattern)中存在/e,那么最后被替换出的string将会代码执行

   i.第一个参数注射

代码如下:

$var="<php>phpinfo();</php>";
echo $reg=$_GET['reg'];
//echo $reg;
preg_replace("/<php>(.*)$reg",'\\1',$var);

我们访问以下url:

localhost:/1.php?reg=<\/php>/e

   ii.第二个参数注射

 

<?php
preg_replace("/moon/e",$_GET['moon'],"I love moon");
?>

访问以下url

http://localhost/1.php?moon=phpinfo()

iii.第三个参数注射

 

<?php
preg_replace("/\s*\[php\](.*)\[php\]\s*/ies","\\1",$_GET['moon']);
?>

访问url:http://localhost/1.php?moon=[php]phpinfo%28%29[php]

 

posted @ 2016-04-03 16:23  平何去何  阅读(156)  评论(0)    收藏  举报