第十七届全国大学生信息安全竞赛创新实践能力赛初赛部分复现

news2024/9/8 11:05:21

Misc

神秘文件

1.根据提示信息,均需要从ppt中提取信息

2.在ppt的属性中发现一串密文和key,解密之后得到第一部分,根据提示Bifid chipher,为双歧密码解密,使用Bifid Cipher Decode解码

3.在第五张幻灯片,发现有一串编码,base64之后得到第六部分

4.第三张幻灯片发现base64编码,解码之后得到flag

5.在第五张幻灯片的批注下找到base64,解码之后得到第五部分

6.在幻灯片的母版中发现加密的内容,并且需要溢出B,b,1,3,解码之后得到第八部分

7.在第四张幻灯片中选择窗口,发现加密内容,解码之后得到第七部分

8.将ppt改为zip之后,在照片的文件夹中发现图片有加密的内容,解密之后得到第九部分

9.在ppt的压缩包中发现doc文件打开之后,发现有加密的内容,解密(根据提示凯撒密码位移为10,且是base64编码)之后得到第二部分

 

10. 将压缩包中的.bin文件放在010中打开,发现加密内容

11.使用base64解码之后,再使用RC4解密,最后再base64,得到第三部分

Web

Simple_PHP

1.代码审计

<?php
ini_set('open_basedir', '/var/www/html/'); //这行代码使用 ini_set 函数设置 PHP 的 open_basedir 配置项。open_basedir 是一个安全相关的配置项,用于限制 PHP 可以访问的目录范围。这里将其设置为 /var/www/html/,意味着 PHP 只能在这个目录及其子目录中执行文件操作。
error_reporting(0);

if(isset($_POST['cmd'])){
    $cmd = escapeshellcmd($_POST['cmd']); //代码检查是否有名为 cmd 的 POST 参数。如果有,则使用 escapeshellcmd 函数处理该参数,该函数会尝试转义 shell 命令中的特殊字符,使其更加安全。
 if(!preg_match('/ls|dir|nl|nc|cat|tail|more|flag|sh|cut|awk|strings|od|curl|ping|\*|sort|ch|zip|mod|sl|find|sed|cp|mv|ty|grep|fd|df|sudo|more|cc|tac|less|head|\.|{|}|tar|zip|gcc|uniq|vi|vim|file|xxd|base64|date|bash|env|\?|wget|\'|\"|id|whoami/i', $cmd)) {
         system($cmd); //这段代码首先使用正则表达式来检查 $cmd 是否包含任何可能危险或敏感的命令。如果 $cmd 不包含这些命令,那么代码将使用 system 函数执行这个命令。system 函数用于执行外部程序,并输出其标准输出。
}
}


show_source(__FILE__);
?>

绕过知识点:

open_basedir函数的绕过:

open_basedir对命令执行没有限制

假如没有进行过滤 那我们就可以通过system函数直接执行

资料:绕过 open_basedir_glob 绕过basedir-CSDN博客

 escapeshellcmd()函数:

escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。

资料:escapeshellarg参数绕过和注入的问题_escapeshellcmd-CSDN博客

编码绕过:

如果命令注入的网站过滤了某些分割符,可以将分隔符编码后(url编码,base64,十六进制编码等)绕过 

资料:如何实现CTF中命令执行绕过方法 - 网络管理 - 亿速云

方法一

无参数+数据库连接查询

1.使用php -r phpinfo();命令查看相关信息,phpinfo是一个服务器的运行指令,可以显示php服务器的配置信息。观察代码并没有发现禁用php,尝试用php -r 去执行php命令

php -r:执行一段php代码,如 php -r "echo 'hello world';"

2.因为linux好多指令被禁用了,考虑16进制转2进制,同样eval函数也没有被禁止,那么既能够不被转义,又能不被匹配,还是命令执行的,所以想到使用十六进制编码进行绕过

知识点1:

hex2bin()函数是PHP中的内置函数。 hex2bin()函数用于解码十六进制编码的二进制字符串。也就是说,它将以十六进制表示编码的二进制字符串解码回二进制表示。

hex2bin() 函数把十六进制值的字符串转换为 ASCII 字符。

注意:此函数的目的不是将十六进制数转换为二进制数,为此我们可以使用PHP中的 base_convert()函数。此函数仅用于解码十六进制编码的二进制字符串。

知识点2:

在十六进制中,只存在数字和字母,不会被转义,还能进制转换后绕过正则;

3.按照正常逻辑,查看index.php文件,发现什么都没有,再查看根目录,发现根目录下没有flag

4.想到读取/etc/passwd文件,发现有mysql用户,其中/root表示用户目录,/bin/bash表示该用户登录linux时用的shell。

/etc/passwd 是linux系统对用户进行识别的一个文件,系统中的所有用户都要在这里登记.当用户登录到linux系统时,linux会读取这个文件来确认用户的身份./etc/passwd文件中的每一行都表示一个用户信息;一行有7个段位;每个段位用:号分割;

5.想到flag在数据库里面,进行查找

相关命令:echo `mysql -u root -p'root' -e 'use PHP_CMS;show databases;'`;

这个命令是在命令行中执行的,它的作用是使用mysql命令连接到MySQL数据库,并执行查询语句来显示PHP_CMS数据库中的所有数据库,使用反引号`来引用命令的输出。

​6.使用echo `mysql -u root -p'root' -e 'use PHP_CMS;show tables;'`;来查表

7.使用来查字段 echo `mysql -u root -p'root' -e 'use PHP_CMS;select * from F1ag_Se3Re7;'`; 得到flag

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

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

相关文章

香橙派Kunpeng Pro测评:他给的实在太多了

文章目录 一、开箱环节1、包装配置2、开发板包装3、开发板3.1、开发版正面3.2、开发板背面 二、硬件配置1、硬件配置清单 2、配置图解 三、开机~启动&#xff01;1、运行系统1.1、外设配置1.2、系统启动1.3、官方教程 2、openEuler系统概览 四、系统测试1、性能测试1.1、安装sy…

现代 c++ 三:移动语义与右值引用

移动语义很简单&#xff0c;但它相关联的术语很复杂。本文尝试从历史的角度解释清楚这些乱七八糟的术语及其关联&#xff1a; 表达式 (expression)、类型&#xff08;type&#xff09;、值类别 (value categories)&#xff1b; 左值 (lvalue)、右值 (rvalue)、广义左值 (glval…

电脑找不到opencl.dll原因分析及5种详细的解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到opencl.dll”。这通常意味着计算机中缺少或损坏了与OpenCL&#xff08;开放计算语言&#xff09;相关的动态链接库文件。OpenCL允许应用程序利用图形处理器&#xff08;GPU&#xff…

[STM32-HAL库]ADC采集-DMA中断采集-平均值滤波-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C8T6

目录 一、前言 二、实现步骤 1.STM32CUBEMX配置 2.Keil工程程序设计 三、结语 一、前言 本文通过STM32CUBEMX实现对ADC的数据采集和滤波操作&#xff0c;帮助各位开发者完成与模拟量输入的采集工作。 二、实现步骤 1.STM32CUBEMX配置 以STM32F103C8T6为例&#xff0c;打开S…

接口响应断言-json

json认识JSONPath源码类学习/json串的解析拓展学习 目的&#xff1a;数据返回值校验测试 json认识 json是什么-是一种数据交换格式&#xff0c;举例平时看到的json图2&#xff0c;在使用中查看不方便&#xff0c;会有格式转化的平台&#xff0c;json格式的展示 JSON在线视图…

OSPF减少LSA更新量1

OSPF的LSA优化 一、汇总——优化骨干区域 (1)域间汇总ABR设备基于某个区域的1/2类LSA计算所得的最佳路由&#xff0c;共享给其他区域时&#xff0c;进行汇总传递。 [r2]ospf 1 [r2-ospf-1]area 1——明细路由所在区域&#xff0c;该ABR设备必须和明细路由在同一区域 [r2-ospf…

学习javascript的函数

1.什么是函数&#xff1f; 可以重复被使用的代码块 作用&#xff1a;函数可以把具有相同或者相似逻辑的代码“包裹起来”&#xff0c;有利于代码的复用。 2.函数的基本使用 1.定义函数 利用关键字Function 定义函数&#xff08;声明函数&#xff09; function 函数名(){函…

windows-386、windows-amd64、windows-arm64这三者有什么区别?

选择文件的版本出现下面问题&#xff1a; Architectures windows-386 &#xff1a;这些是针对 32 位 Windows 系统编译的。windows-amd64 &#xff1a;这些是针对具有 AMD 或 Intel x86-64 架构的 64 位 Windows 系统编译的。windows-arm64 &#xff1a;这些是针对具有 ARM 架…

模型实战(20)之 yolov8分类模型训练自己的数据集

yolov8分类模型训练自己的数据集 yolov8,一个实时快速的端到端的集检测、分割、分类、姿态识别于一体的视觉算法库/框架本文将给出yolov8 分类模型的数据集制作格式及训练流程 1. 环境搭建 关于虚拟环境的搭建真的是老生常谈了,给出一个简单的搭建流程吧#新建虚拟环境 conda …

大模型时代的具身智能系列专题(三)

清华高阳团队 高阳为清华叉院助理教授&#xff0c;本科毕业于清华大学计算机系&#xff0c;博士毕业于UC Berkeley。博士导师是Vision领域的大牛Trevor Darrell&#xff0c;读博期间和Sergey Levine合作开始强化学习方面的探索&#xff0c;博后跟随Pieter Abbeel做强化学习&am…

7.类和对象

类和对象 当我们没有去了解过java的知识点中 不免产生一些问题&#xff1a; 什么是类&#xff1f;什么是对象&#xff1f; 记住一句话&#xff1a;在java当中 一切皆对象 类&#xff1a;是用来描述一个对象的 而对象是一个真正存在的实体 在Java这门纯面向对象的语言中 我们…

利用ArcGIS Python批量拼接遥感影像(arcpy batch processing)

本篇文章将说明如何利用ArcGIS 10.1自带的Python IDLE进行遥感影像的批量拼接与裁剪。 1.运行环境&#xff1a;ArcGIS10.1 (安装传送门)、Python IDLE 2.数据来源&#xff1a;地理空间数据云 GDEMV2 30M分辨率数字高程数据 3.解决问题&#xff1a;制作山西省的DEM影像 如下…

重生之 SpringBoot3 入门保姆级学习(05、 Bean 装配)

重生之 SpringBoot3 入门保姆级学习&#xff08;05、 Bean 装配&#xff09; [TOC](重生之 SpringBoot3 入门保姆级学习&#xff08;05、 Bean 装配&#xff09;)2.2.1 通过 ioc.xml 文件配置2.1.2 通过 Configuration 注解配置2.2.4 测试 Bean 是否生效 新建 User 类 package…

构建镜像时候出现奇怪的现象时候

一、背景 构建镜像时候&#xff0c;昨天还好好的&#xff0c;今天出现奇怪的现象 二、查看现象 docker system df#cache 显示600G 三、步骤 这操作比较轻微&#xff0c;20以前的缓存清理掉 docker builder prune --filter until480h # 清除20填以前的构建缓

深入理解栏目函数:从基础结构到实际应用

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、栏目函数的基本结构解析 代码案例 二、栏目函数的参数理解与返回值探究 参数取值与返…

决策树|随机森林 GBDT XGBoost|集成学习

文章目录 1 决策树模型1.1 决策树模型简介1.2 决策树模型核心问题1.2.1 分类划分标准1.2.1.1 信息增益1.2.1.2 增益率1.2.1.3 基尼系数 1.2.2 停止生长策略1.2.3 剪枝策略 1.3 决策树 - python代码1.3.1 结果解读1.3.2 决策树可视化1.3.3 CV - 留一法 2 集成学习2.1 Boosting2.…

MySQL:如果用left join的话,左边的表一定是驱动表吗

一、前言 在日常开发过程中关于MySQL的优化方面&#xff0c;我们知道小表驱动大表原理。例如left join&#xff0c;放在左边的表作为驱动表。但是用left join的话&#xff0c;左边的表一定是驱动表吗&#xff0c;本文将通过案例分析给出详细分析。 二、概念 在MySQL中&#xf…

初识C++ · 模拟实现vector

目录 前言&#xff1a; 1 部分简单函数的实现 2 push_back和pop_back 3 reserve和resize 4 Print_vector 5 insert和erase 6 拷贝构造 7 构造 8 赋值 9 memcpy的问题 10 迭代器失效 前言&#xff1a; 继上文模拟实现了string之后&#xff0c;接着就模拟实现vector&…

Java三种方法实现多线程,继承Thread类,实现Runnable接口,实现Callable接口

目录 线程&#xff1a; 继承Thread类&#xff1a; 实现Runnable类&#xff1a; 实现Callable接口&#xff1a; 验证多线程&#xff1a; 线程&#xff1a; 定义&#xff1a;进程可以同时执行多个任务&#xff0c;每个任务就是线程。举个例子&#xff1a;一个Java程序&#…

rfid资产管理系统如何帮助医院管理耗材的

RFID资产管理系统可以帮助医院管理耗材&#xff0c;提高耗材管理的效率和准确性。以下是它可以发挥作用的几个方面&#xff1a; 1. 实时跟踪和定位&#xff1a;使用RFID标签附加在耗材上&#xff0c;可以实时跟踪和定位耗材的位置。医院可以通过系统查询耗材的实时位置&#xf…