php反引号与短标签脚本示例

2022-04-18 17:20:45
<?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模式获取路径进入到下面去看看

php反引号与短标签脚本示例

php反引号与短标签脚本示例

成功回显1234,有点渲染那味了

构造action=upload&data=<?=`ls`?>,因为空格被过滤了,我们可以利用水平制符t来代替空格

php反引号与短标签脚本示例

继续执行命令即可 

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

相关文章 大家在看