zoukankan      html  css  js  c++  java
  • 记一次ctf文件上传

    事情起因

    最近有空就将之前参与过的CTF其中一道题做为笔记写出来
    (说实在的 CTF参加的不多 偶尔参与一次体会挺深的 和实战比起来区别还是挺大的)

    容器启动 画面很简单

    • 录枚举找到了有个index.php.bak文件下载下来 就是这个样子基本上就是源代码备份文件了。
      根据文档说明 大概知道这道题就是一个简单的上传题,难点就是上传后会随机创建一个上传目录,只要找到这个上传目录这道题就解了

    • 随机目录会进行sha1(rand(0,1000));就能得到随机上传目录

    • 后台大概为/工作目录/upload/0-1000的sha1值/你上传的文件名。

    • url基本为http://域名:端口/upload/0-1000的sha1值/你上传的文件名

    <?php
    
    //error_reporting(0);
    
    if(!isset($_SESSION['source']))
    {
        $_SESSION['source'] = sha1(rand(0,1000));
    }
        
    $finalPos  = getcwd() . "/upload/" . sha1($_SESSION['source']);
    
    $filePos = $finalPos . "/" . basename($fileName);
    
    • 直接上传phpinfo文件试试

    • 进行sha1(rand(0,1000));

    • 根据回显的状态码以及长度判断出随机上传目录

    同上替换webshell 成功找到flag

    星光不问赶路人,岁月不负有心人。无产阶级坚定拥护者!本博客很垃圾,严禁转载!
  • 相关阅读:
    二、魔法函数
    Metaclasses
    一、python中的一切皆对象
    三、鸭子类型
    SQL进行排序、分组、统计的10个新技巧
    输入地址栏可以编辑页面的js
    项目开发中常用JS表单取值方法
    [导入]通用的分页存储过程
    107个常用Javascript语句
    [导入]事务处理
  • 原文地址:https://www.cnblogs.com/Sylon/p/15205786.html
Copyright © 2011-2022 走看看