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

    星光不问赶路人,岁月不负有心人。无产阶级坚定拥护者!本博客很垃圾,严禁转载!
  • 相关阅读:
    jQuery之防止冒泡事件
    jQuery复制节点
    jQuery查找节点
    jQuery表单选择器
    jQuery之事件触发trigger
    jQuery样式操作
    为FLASH正名!HTML5前景分析
    iframe 高度自动调节,最简单解决
    Iframe和母版页(.net)
    表单遮住弹出层解决方法(select遮住DIV)
  • 原文地址:https://www.cnblogs.com/Sylon/p/15205786.html
Copyright © 2011-2022 走看看