命令执行没有过滤 | ,可以通过对没有被过滤的字符进行或的位运算来得到想要的字符 先通过一个PHP脚本列出没有被过滤的字符的运算情况 <?phpfor($i= 0;$i< 256;$i++)//穷举Ascii的256个字符for($j= 0;$j< 256;$j++) {$preg= '/[0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&|\-/i';
cat flag.php 这里坑主要是 他执行格式是 (system)(ls)这样,貌似是php7支持的动态函数执行啥的 其他就是注意字符转换,脚本不难写