2019强网杯部分writeup

本文详细介绍了2019年强网杯网络安全竞赛中Web和Misc部分的部分题目解题思路。在Web部分,涉及了文件上传、命令执行、堆叠注入等技巧,如通过类的反序列化实现文件名修改获取shell。Misc部分包括图片隐藏信息解码和GAMEBOY文件的金手指修改来获取flag。
摘要由CSDN通过智能技术生成

Web

1、UPLOAD

复现环境https://github.com/CTFTraining/qwb_2019_upload
先看一下网站情况:
在这里插入图片描述
是一个注册可登录的界面,登陆之后可以上传图片,一个账号只能上传一次。
在这里插入图片描述
扫一下后台目录,发现upload是泄露的,www.tar.gz是泄露的。
www.tar.gz下载下来是网站的源码,upload则是我们上传的文件,找到上传文件的源码:
在这里插入图片描述

<?php
namespace app\web\controller;

use think\Controller;

class Profile extends Controller
{
   
    public $checker;
    public $filename_tmp;
    public $filename;
    public $upload_menu;
    public $ext;
    public $img;
    public $except;

    public function __construct()
    {
   
        $this->checker=new Index();
        $this->upload_menu=md5($_SERVER['REMOTE_ADDR']);
        @chdir("../public/upload");
        if(!is_dir($this->upload_menu)){
   
            @mkdir($this->upload_menu);
        }
        @chdir($this->upload_menu);
    }

    public function upload_img(){
   
        if($this->checker){
   
            if(!$this->checker->login_check()){
   
                $curr_url="http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."/index";
                $this->redirect($curr_url,302);
                exit();
            }
        }

        if(!empty($_FILES)){
   
            $this->filename_tmp=$_FILES['upload_file']['tmp_name'];
            $this->filename=md5($_FILES['upload_file']['name']).".png";
            $this->ext_check();
        }
        if($this->ext) {
   
            if(getimagesize($this->filename_tmp)) {
   
                @copy($this->filename_tmp, $this->filename);
                @unlink($this->filename_tmp);
                $this->img="../upload/$this->upload_menu/$this->filename";
                $this->update_img();
            }else{
   
                $this->error('Forbidden type!', url('../index'));
            }
        }else{
   
            $this->error('Unknow file type!'
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值