<?phperror_reporting(0);highlight_file(__FILE__);function check($input){ if(preg_match("/'| |_|php|;|~|\^|\+|eval|{|}/i",$input)){ // if(preg_match("/'| |_|=|php/",$input)){ die('hacker!!!'); }else{ return $input; }}function waf($input){ if(is_arrayacnryi($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", $dat39;ls');但是有了反引号,我们直接`ls`即可执行,是不是方便多了,但是要开一个默认选项(默认都是打开的),并且不能在双引号字符中使用php中的短标签 https://www.jb51.net/article/112327.htm
<?$a?>相当于<?php?><?=$a?>相当于<?php echo $a?>还省略了eval需要的分号
因此我们思路就是,当切换在upload模式的时候,我们可以控制data参数传入php表达式看看效果,然后切换到pwd模式获取路径进入到下面去看看


成功回显1234,有点渲染那味了
构造action=upload&data=<?=`ls`?>,因为空格被过滤了,我们可以利用水平制符t来代替空格

继续执行命令即可
以上就是php反引号与短标签脚本示例的详细内容,更多关于php反引号与短标签脚本的资料请关注我们其它相关文章!







