首页 > 其他分享 >2022第五空间网络安全初赛-md

2022第五空间网络安全初赛-md

时间:2022-10-02 10:57:13浏览次数:51  
标签:function md return 2022 img 初赛 filename file name


title: 2022第五空间网络安全初赛.md
date: 2022-09-20 11:06:40
tags:

2022 第五空间网络安全初赛

5_web_BaliYun

简单的文件上传

刚开始别人出的很快就以为是不同的文件上传 但是自己绕过饶了半天传不上去

后来发现源代码ww.zip

审计代码

<!DOCTYPE html>
<html>
<head>
    <title>BaliYun图床</title>
    <link rel="stylesheet" href="css/style.css">
    <link href='//fonts.googleapis.com/css?family=Open+Sans:400,300italic,300,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>
    <link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>


    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="keywords" content="File Upload widget Widget Responsive, Login Form Web Template, Flat Pricing Tables, Flat Drop-Downs, Sign-Up Web Templates, Flat Web Templates, Login Sign-up Responsive Web Template, Smartphone Compatible Web Template, Free Web Designs for Nokia, Samsung, LG, Sony Ericsson, Motorola Web Design" />
    <script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script>
</head>

<body>
<h1>BaliYun图床</h1>
<div class="agile-its">
    <h2>Image Upload</h2>
    <div class="w3layouts">
        <div class="photos-upload-view">
            <form action="index.php" method="post" enctype="multipart/form-data">
                <label for="file">选择文件</label>
                <input type="file" name="file" id="file"><br>
                <input type="submit" name="submit" value="提交">
            </form>
            <div id="messages">
                <p>
                    <?php
                    include("class.php");
                    if(isset($_GET['img_name'])){
                        $down = new check_img();
                        echo $down->img_check();
                    }
                    if(isset($_FILES["file"]["name"])){
                        $up = new upload();
                        echo $up->start();
                    }
                    ?>
                </p>
            </div>
        </div>
        <div class="clearfix"></div>
        <script src="js/filedrag.js"></script>


    </div>
</div>
<div class="footer">
    <p> Powerded by  <a href="http://w3layouts.com/">ttpfx de BaliYun图床</a></p>
</div>

<script type="text/javascript" src="js/jquery.min.js"></script>

</div>
</body>
</html>

包含了class.php

class.php

<?php
class upload{
    public $filename;
    public $ext;
    public $size;
    public $Valid_ext;

    public function __construct(){
        $this->filename = $_FILES["file"]["name"];
        $this->ext = end(explode(".", $_FILES["file"]["name"]));
        $this->size = $_FILES["file"]["size"] / 1024;
        $this->Valid_ext = array("gif", "jpeg", "jpg", "png");
    }

    public function start(){
        return $this->check();
    }

    private function check(){
        var_dump($this->filename);
        if(file_exists($this->filename)){
            return "Image already exsists";
        }elseif(!in_array($this->ext, $this->Valid_ext)){
            return "Only Image Can Be Uploaded";
        }else{
            var_dump($this->filename);
            return $this->move();
        }
    }

    private function move(){
        move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$this->filename);
        //phpinfo();
        return "Upload succsess!";
    }

    public function __wakeup(){
        echo "12ehdwugfuwegfufffffdjaseiwhfishfiuusehfi";
        phpinfo();
        echo file_get_contents($this->filename);
    }
}


class check_img{
    public $img_name;
    public function __construct(){
        $this->img_name = $_GET['img_name'];
    }

    public function img_check(){
        if(file_exists($this->img_name)){
            return "Image exsists";
        }else{
            return "Image not exsists";
        }
    }
}
    public function __wakeup(){
        echo "12ehdwugfuwegfufffffdjaseiwhfishfiuusehfi";
        phpinfo();
        echo file_get_contents($this->filename);
    }

看到这个__wakeup并且有类 但是没有unserliaze函数

不久纯纯的phar发反序列化触发嘛

然后审计一下

先看index.php

包含了class.php

然后如果存在get传参img_name的话就实例化check_img类

$this->img_name就是我们get传参的参数

然后调用img_check函数如果存在的话返回文件存在

不存在的话返回不存在

如果存在上传文件

实例化upload类

经过了一些对文件的操作,这些都不重要我们想要的是触发__wakeup函数

如何触发__wakeup呢 就是触发反序列化呗

如何触发反序列化呢 一些文件操作函数 如果用phar伪协议去读phar文件就会触发反序列化

这里输出的是

image-20220919222104109

所以我们写phar文件的时候就把filenam赋值为flag就可 这里我在本机windows里面复现的

image-20220919222723685

标签:function,md,return,2022,img,初赛,filename,file,name
From: https://www.cnblogs.com/kkkkl/p/16748375.html

相关文章

  • 2022中国工业互联网安全大赛北京市选拔赛全国线上预选赛-md
    title:2022中国工业互联网安全大赛北京市选拔赛全国线上预选赛.mddate:2022-09-2322:19:12tags:ezRead一眼看到上面可能是存在任意文件读应该是base64加密过后的......
  • DDCTF2019-HOMEBREW-EVENT-LOOP-md
    title:DDCTF2019HOMEBREWEVENTLOOP.mddate:2022-09-2711:42:22tags:[DDCTF2019]homebreweventloop代码审计fromflaskimportFlask,session,request,Re......
  • SWPUCTF2018SimplePHP-md
    title:SWPUCTF2018SimplePHP.mddate:2022-06-2508:06:23tags:登陆进去之后发现上传文件这里我们试着上传一个shell试试发现过滤了应该直接上传shell不可以这......
  • ciscn2019华北赛区Day1-Web1dropbox-md
    title:ciscn2019华北赛区Day1Web1dropbox.mddate:2022-06-2620:56:10tags:进去之后呢看到一个登录框然后注册一个账号进去看到有上传文件的东西然后试试上传一个......
  • BJDCTF2020Cookie-is-so-stable-md
    title:BJDCTF2020Cookieissostable.mddate:2022-07-0718:45:14tags:进去之后发现这个好像ssti我们输入{{1+2}}返回这个应该时ssti了然后我们输入{{"".__c......
  • PHP伪协议总结-md
    title:PHP伪协议总结.mddate:2022-06-2321:35:32tags:php伪协议浅浅学习file://协议利用条件allow_url_fopen:off/onallow_url_include:off/on作用:访问本地......
  • 安洵杯2019——eazy——web-md
    title:安洵杯2019——eazy——web.mddate:2022-10-0210:11:51tags:[安洵杯2019]easy_web绷不住了。。。。看题把上面get这里应该是可以获取文件cmd是什么现在......
  • 2022-2023-1 20221304 《计算机基础与程序设计》第五周学习总结
    2022-2023-120221304《计算机基础与程序设计》第五周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业......
  • 2022/10/2
    #define_CRT_SECURE_NO_WARNING#include<stdio.h>intmain(){inta=0;intb=0;intsum=0;scanf("%d%d",&a,&b);sum=a+b;printf("%d\n",sum);  return 0;}......
  • 2022神经渲染的进展综述
    神经渲染的进展综述来源:​​https://zhuanlan.zhihu.com/p/567654308​​EuroGraphics‘2022综述论文“AdvancesinNeuralRendering“,2022年3月,作者来自MPI、谷歌研究、E......