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

    星光不问赶路人,岁月不负有心人。无产阶级坚定拥护者!本博客很垃圾,严禁转载!
  • 相关阅读:
    Java vs Python
    Compiled Language vs Scripting Language
    445. Add Two Numbers II
    213. House Robber II
    198. House Robber
    276. Paint Fence
    77. Combinations
    54. Spiral Matrix
    82. Remove Duplicates from Sorted List II
    80. Remove Duplicates from Sorted Array II
  • 原文地址:https://www.cnblogs.com/Sylon/p/15205786.html
Copyright © 2011-2022 走看看