ctfshow-web入门-命令执行(web119、web120、web121、web122)

目录

1、web119

2、web120

3、web121

4、web122


1、web119

采用 118 的 payload,回显 evil input,说明新增了过滤

单独测试一下,是 PATH 、BASH 被过滤了

在上一题的基础上,我们再介绍一个内置变量:$RANDOM

它会生成一个随机数,长度一般是 4 位或者 5 位,也就是说我们可以得到 4 或者 5 。

那么我们就可以构造出 /bin/base64 去读取 flag.php,主要就是构造出 / 和 4,其他使用通配符。

构造 /bin/base64 flag.php,payload:

${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?????${#RANDOM} ????.???

其中 ${PWD::${#SHLVL}} 就等同于斜杠 /,${#RANDOM} 的值可能是 4 或者 5 ,所以可能需要多试几次。

得到:

PD9waHAKJGZsYWc9ImN0ZnNob3d7MTViYzM3NTItMjYxNC00YmY4LWI1ZDYtZjQ4YmYwZTA4NjNk fSI7Cj8+
fSI7Cj8+

进行 base64 解码:

拿到 flag:ctfshow{15bc3752-2614-4bf8-b5d6-f48bf0e0863d}

其他尝试

当然我们还可以构造其他的,我们知道 cat 也是在 bin 目录下的,尝试构造 /bin/cat flag.php

这里当前登录的用户名应该是 www-data,我最开构造的是 a ,取变量的最后一个字母,也就是 /bin/?a?

${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?${USER:~Q}? ????.???

命令执行成功了,可惜执行的不是 cat 命令:

(也可能不是执行成了其他命令,也可能是读到了其他的文件,并未匹配到 flag.php)

我们可以来看一下 Linux 系统的 bin 目录下符合要求的命令:

可以看到还是很多的,因此并不一定会执行到我们期望的那个命令

 这里我们构造 t ,也就是 /bin/??t,题目提示里面说:

${HOME:${#HOSTNAME}:${#SHLVL}}     ====>   t

构造 payload: 

${PWD::${#SHLVL}}???${PWD::${#SHLVL}}??${HOME:${#HOSTNAME}:${#SHLVL}} ????.???

 cat 命令执行成功,拿到 flag 

$HOME 应该是 /var/www/html,但是其实我也并不清楚 ${HOSTNAME} 是什么以及它的长度是多少;假设 ${HOSTNAME} 也是 www-data,那么它和 $USER 长度就是一样的,将 payload 中的 HOSTNAME 替换成 USER,但是发现打不通:

${PWD::${#SHLVL}}???${PWD::${#SHLVL}}??${HOME:${#USER}:${#SHLVL}} ????.???

说明它两内容长度不一样,这里成功取到 t ,说明 ${#HOSTNAME} 是 10。

此外,我们是否还可以继续构造 nl 命令呢?

我在我自己服务器上发现 $LANG 中存在 n

构造 n:

${LANG:${#SHLVL}:${#SHLVL}}

构造 nl flag.php 

${LANG:${#SHLVL}:${#SHLVL}}${PWD:~Q} ????.???

可惜也没有打通,具体的题目环境和我自己服务器的不一样。

其实还有其他包含 n 的,这里的话我们就需要构造数字 3 

 

但是 3 这个数字不好构造,我们可以倒着来取,还记得上一题时我们说到的波浪号吗?

我们倒着取索引为 5 的即是 n,构造字符 n:

${SHELL:~${#RANDOM}:${#SHLVL}}

我们说了这个随机数长度可能是 4 也可能是 5 ,因此也需要多试几次: 

构造 nl flag.php,payload:

${SHELL:~${#RANDOM}:${#SHLVL}}${PWD:~Q} ????.???

可惜还是不行,一般来说 shell 和 bash 都是 /bin/bash

于是我回到了上一题,没有过滤 BASH 的题去执行,发现无论是 BASH 还是 SHELL 都不行。

不知道问题出在哪里还是说它确实没有这个或者内容不一样(有知道的师傅可以告知一下谢谢)

2、web120

直接给了源码,新增过滤 HOME

base64 的 payload 可以继续使用:(多试几次)

code=${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?????${#RANDOM} ????.???

得到:

PD9waHAKJGZsYWc9ImN0ZnNob3d7YjU0NTdhMjYtYzgwMy00NDVkLWFhYTEtM2M5MTZjYjZjNTE5 fSI7Cj8+
fSI7Cj8+

base64 解码:

拿到 flag:ctfshow{b5457a26-c803-445d-aaa1-3c916cb6c519} 

看了提示给的 payload:

${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?${USER:~A}? ????.???

好家伙,就是前面上一题我没有试成功的,读出来也是乱码,我还以为是执行成了其他命令呢。

也可能不是执行成了其他命令,也可能是读到了其他的文件,并未匹配到 flag.php。

我也搜索过 flag ,但是没找到什么有用信息:

3、web121

也是给了源码,但是过滤东西更多了

SHLVL 被过滤掉,我们使用 ${##} 或者 ${#?} 代替:

还是采用 base64 的 payload,修改一下 payload:

code=${PWD::${#?}}???${PWD::${#?}}?????${#RANDOM} ????.???

PD9waHAKJGZsYWc9ImN0ZnNob3d7MDBhNzA4YmYtMWMzZi00N2M3LTllYTUtNGM5ZGVkNWU3Mzk1 fSI7Cj8+
fSI7Cj8+

解码:

拿到 flag:ctfshow{00a708bf-1c3f-47c7-9ea5-4c9ded5e7395}

此外还可以构造 rev 命令:

${#IFS} 是 3 

payload:

code=${PWD::${#?}}???${PWD::${#?}}${PWD:${#IFS}:${#?}}?? ????.???

因为 $PWD 是 /var/www/html,从索引为 3 的开始取 1 位就是 r,结果取倒序即可。

这里出现了 3,放到前面的题去试了下,BASH 和 SHELL 的依旧是不行,难道都不是 /bin/bash吗,很奇怪。

4、web122

# 也被过滤了,很难去得到长度和数字

题目提示:

通过$?来实现的,$?是表示上一条命令执行结束后的传回值。通常0代表执行成功,非0代表执行有误

但是我在本地测试它执行失败并不是返回 1,只是一个非 0 的数。

提示给的 payload:

code=<A;${HOME::$?}???${HOME::$?}?????${RANDOM::$?} ????.???

它这里用到的是 /bin/base64 去读取 flag 的,其中 $? 被解释成了 1,因此 ${HOME::$?} 对应的就是斜杠 /,后面使用随机数变量随机生成了一个 4 至 5 位数,然后取随机数的第一位,当随机数的第一位为 4 即可匹配到 base64,不过前面的 <A 是什么我并不理解,去掉是不行的,等待大佬解释下谢谢。

 

解码拿到 flag:ctfshow{3d1c6ce9-7bcf-4e96-a263-1172c8a79152}

关于利用 Linux 内置变量与 Bash 切片的命令执行至此结束。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【日记】居然梦到了南通……(701 字)

正文 昨晚的睡眠质量很不好。做了一个很离谱的梦&#xff0c;噩梦。梦到我被一群南通给那什么了。当时直接给我吓醒了。我都不知道为什么会做这种诡异的梦。 昨晚那群孩子要去这个县里最繁华的广场跳舞。结果老师一声 “走&#xff01;” 给我都听懵了。那地方可不近啊。我们最…

化身成羊:关于羊的词群探析

在西方的神话故事中&#xff0c;像主神宙斯&#xff0c;或者基督教义中的上帝&#xff0c;通常都有化身成羊的形象。 那为什么会这样呢&#xff1f; 一、什么是神话(myth)&#xff1f; 神话&#xff0c;正式的用词是 mythology&#xff1a; mythology n.神话&#xff1b;神话…

专访ATFX首席战略官Drew Niv:以科技创新引领企业高速发展

在金融科技创新的浪潮中&#xff0c;人才是推动企业高速发展的核心驱动力&#xff0c;优质服务是引领企业急速前行的灯塔。作为差价合约领域的知名品牌&#xff0c;ATFX高度重视人才引进工作&#xff0c;秉持“聚天下英才而用之”的理念&#xff0c;在全球范围内广揽科技精英&a…

java版本工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管理的…

二氯二氰苯醌(DDQ)市场空间受限 行业需要寻求新的发展方向及机遇

二氯二氰苯醌&#xff08;DDQ&#xff09;市场空间受限 行业需要寻求新的发展方向及机遇 二氯二氰苯醌&#xff08;DDQ&#xff09;&#xff0c;学名2,3-二氯-5,6-二氰基苯醌&#xff0c;是一种亮黄色粉末状化合物&#xff0c;具有强氧化性。DDQ在化学合成中具有重要用途&#…

LInux安装nginx方法以及配置文件释义

Linux安装Nginx方法以及所遇见的坑 安装nginx注意细节1、安装所需要的依赖2、下载以及安装nginx3、所有命令执行完毕&#xff0c;启动nginx4、开通防火墙执行完以上所有命令&#xff0c;nginx安装以及启动步骤完成&#xff0c;满足基础访问&#xff0c;访问地址如下&#xff1a…

21.《C语言》——【位操作符】

&#x1f33b;开场语 亲爱的读者&#xff0c;大家好&#xff01;我是一名正在学习编程的高校生。在这个博客里&#xff0c;我将和大家一起探讨编程技巧、分享实用工具&#xff0c;并交流学习心得。希望通过我的博客&#xff0c;你能学到有用的知识&#xff0c;提高自己的技能&a…

视频怎么制作gif动态图片?GIF制作方法分享

视频怎么制作gif动态图片&#xff1f;视频制作GIF动态图片&#xff0c;不仅保留了视频的生动瞬间&#xff0c;还赋予了图像循环播放的魔力。这一技能不仅让创意表达更加丰富多彩&#xff0c;还极大地提升了视觉传播的效率和趣味性。在快节奏的数字时代&#xff0c;GIF动图以其小…

Unity 数据持久化【PlayerPrefs】

1、数据持久化 文章目录 1、数据持久化PlayerPrefs基本方法1、PlayerPrefs概念2、存储相关3、读取相关4、删除数据思考 信息的存储和读取 PlayerPrefs存储位置1、PlayerPrefs存储的数据在哪个位置2、PlayerPrefs 数据唯一性思考 排行榜功能 2、Playerprefs实践1、必备知识点-反…

文化创新与社交媒体:探索Facebook的足迹

在过去的十多年里&#xff0c;Facebook从一个简单的校园社交网络发展成为全球最大的社交媒体平台之一。它不仅改变了人们的沟通方式&#xff0c;更在许多方面推动了文化的创新和变革。本文将深入探索Facebook如何通过其平台的演进和功能创新&#xff0c;成为文化创新的重要推动…

SpringBoot实战(二十八)集成 Collabora Online 实现在线编辑

目录 一、什么是 Collabora Online?二、Docker 下载并启动 CODE2.1 拉取镜像2.2 启动镜像2.3 访问界面2.4 补充:nextcloud 的镜像启动三、SpringBoot 实现 WOPI 服务3.1 什么是WOPI?3.2 Spring Boot 简单实现3.3 另一种实现方式3.4 总结四、补充:coolwsd.xml 核心配置介绍c…

SpringBoot集成beetl模板快速入门

在pom文件引入maven依赖 <dependency><groupId>com.ibeetl</groupId><artifactId>beetl-framework-starter</artifactId><version>1.1.81.RELEASE</version></dependency>写一个controller /*** author * create * descripti…

Java开发-实际工作经验和技巧-0005-使用MapStruct进行两个实体类的转换,出现所有属性值都为null的情况

Java开发-实际工作经验和技巧-0005-使用MapStruct进行两个实体类的转换,出现所有属性值都为null的情况 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;Code…

推荐系统三十六式学习笔记:原理篇.MAB问题|16|简单却有效的Bandit算法

目录 推荐就是选择MAB问题Bandit算法1.汤普森采样算法2.UCB算法3.Epsilon贪婪算法4.效果对比 冷启动总结 推荐系统的使命就是建立用户和物品之间的连接。建立连接可以理解成;为用户匹配到最佳的物品&#xff1b;但也有另一个理解就是&#xff0c;在某个时间某个位置为用户选择最…

Redis 管道(Pipeline)是什么?有什么用?

目录 1. redis 客户端-服务端模型的不足之处 2. redis 管道是什么&#xff1f;有什么好处&#xff1f; 3. 管道的使用场景 4. 管道使用的注意事项 1. redis 客户端-服务端模型的不足之处 众所周知&#xff0c;redis 是一个客户端-服务端的模型设计&#xff0c;客户端向服务…

Zoom视颊会议软件使用

GPT-3.5 (OpenAI) Zoom是一款极受欢迎的视频会议软件。使用Zoom可以方便地进行视频会议、远程授课、在线研讨会等活动。以下是Zoom的使用步骤&#xff1a; 1. 下载Zoom客户端 可以在Zoom官网上下载对应平台的Zoom客户端。下载并完成安装后&#xff0c;双击打开客户端。 2. 创建…

大数据开发中如何计算用户留存及SQL示例

在大数据开发领域&#xff0c;用户留存是一个关键指标&#xff0c;它反映了产品吸引并保留用户的能力。 留存率的计算不仅有助于评估产品的健康状况&#xff0c;还能为产品优化和市场策略提供重要依据。 本文将详细介绍如何在大数据开发中计算用户留存&#xff0c;并附带具体…

大数据之路 读书笔记 Day2

大数据之路 读书笔记 Day2 日志采集——浏览器的页面采集 一、分类 #mermaid-svg-8c9sRexRDdSB9pWA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8c9sRexRDdSB9pWA .error-icon{fill:#552222;}#mermaid-svg-8c9…

【论文解读】CVPR2024:DUSt3R: Geometric 3D Vision Made Easy

论文“”https://openaccess.thecvf.com/content/CVPR2024/papers/Wang_DUSt3R_Geometric_3D_Vision_Made_Easy_CVPR_2024_paper.pdf 代码&#xff1a;GitHub - naver/dust3r: DUSt3R: Geometric 3D Vision Made Easy DUSt3R是一种旨在简化几何3D视觉任务的新框架。作者着重于…

002-关于Geogebra软件的介绍及与MatLab的区别

为什么要学Geogebra&#xff1f; 因为和MatLab的科学计算相比&#xff0c;GeoGebra重点突出教学展示&#xff0c;对于教师、学生人群来讲再合适不过了&#xff0c;尤其是可以融入到PPT里边呈现交互式动画&#xff0c;想想听众的表情&#xff01;这不就弥补了看到PPT播放数学公…