ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
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']); ?> ```