PHP7CMS过滤不当导致前台GETSHELL

发布于 12 天前  35 次阅读


我们先来看一段代码

$str = str_replace(array('<?', '?'.'>'), array('<?', '?>'), $str);
此处使用str_replace函数来进行匹配传入字符中<? ?>来进行匹配输出。

我们知道在PHP中有四种代码风格

<?php phpinfo();?>
<?=phpinfo();?>
<%php phpinfo();%>
<script language="php">phpinfo()</script>

从以上代码风格可以看出只要在php7.0以下的版本我们均可以使用第三种第四种代码风格绕过此过滤机制。


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。