ctfshow-web入门-命令执行(web42知识铺垫与四种常见截断方法)

news2024/11/28 10:51:00

目录

1、知识铺垫

(1)文件描述符 

(2)/dev/null

2、代码审计

3、命令分隔

(1)使用分号 ;

(2)使用逻辑或 ||

(3)使用 && 或者 &

4、%0a 换行符截断


 命令执行,需要严格的过滤

 

1、知识铺垫

(1)文件描述符 

标准输入(stdin):文件描述符为 0,用于读取输入数据。
标准输出(stdout):文件描述符为 1,用于输出普通的结果或信息。
标准错误(stderr):文件描述符为 2,用于输出错误信息。

(2)/dev/null

/dev/null 是类 Unix 操作系统中的一个特殊文件,被称为“空设备”或“黑洞”,它是一个字符设备文件,其主要作用是丢弃所有写入它的数据,同时任何从它读取的操作都会立即返回EOF(文件结束符)。

2、代码审计

system($c." >/dev/null 2>&1");

将 get 请求传递的 c 的内容与后面内容进行拼接后作为 system 函数的参数;

>/dev/null 是一个重定向操作符,用于将标准输出(stdout)重定向到 /dev/null,这意味着命令的标准输出将不会显示在终端或网页上,也不会写入任何文件;

2>&1 是另一个重定向操作符,它将标准错误(stderr)重定向到标准输出(stdout),>&1 表示将标准错误重定向到标准输出所指向的地方(即 /dev/null),这意味着命令的所有错误信息也会被丢弃。

直接传入系统命令没有回显:

针对这种回显被重定向到了黑洞的情况,下面给出一些处理方法。

3、命令分隔

使用管道符,这里又有四种方法

(1)使用分号 ;

对于命令分隔,分号只适用于 Linux 系统,不适用于 Windows 系统。

构造 payload:

?c=ls;

执行成功 

 

(2)使用逻辑或 ||

关于管道符的详细介绍和用法可以参考我之前写的 DVWA 靶场的命令注入:

DVWA 靶场之 Command Injection(命令执行)原理介绍、分隔符测试、后门写入与源码分析、修复建议_dvwa command injection-CSDN博客icon-default.png?t=N7T8https://myon6.blog.csdn.net/article/details/136291307对于两个或,前面为真,只执行前面的,后面命令不会执行;而对于一个或, 无论第一个命令执行为真还是假,都是直接执行第二个命令。

这里我们只希望执行 ls 而不希望执行重定向的效果,构造 payload:

其实无论后面重定向的命令执行与否对我们前面命令的执行都不影响,我们只需要确保第一个命令执行了就行。

?c=ls||

执行成功 

 (3)使用 && 或者 &

对于两个与,当第一个命令执行失败(为假),那么第二个命令也不会被执行;

对于一个与,前面的语句为假则直接执行后面的,前面可真可假,后面命令都会执行;

我们也不用管后面的,确保前面命令被执行即可。

但是这里与符号传入前需要先 URL 编码,我也不知道为啥,虽然说是在 url 里面传的,但是为啥或符号不需要呢?不懂,有知道的可以解释下谢谢。

直接传与符号没有回显:

编码后传入,构造 payload:

?c=ls%26

 

或者:

?c=ls%26%26

 

4、%0a 换行符截断

构造 payload:

?c=ls%0a

最后就直接拿 flag 吧,反向显示 flag.php:

?c=tac flag.php%0a

拿到 flag:ctfshow{77a306ca-d797-4143-a52e-bbc73ca89b22} 

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

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

相关文章

【中国开源生态再添一员】天工AI开源自家的Skywork

刚刚看到《AI高考作文出圈,网友票选天工AI居首》,没想到在Huggingface中发现了Skywork大模型。天工大模型由昆仑万维自研,是国内首个对标ChatGPT的双千亿级大语言模型,天工大模型通过自然语言与用户进行问答式交互,AI生…

【Linux】进程5——进程优先级

1.进程优先级 1.1.什么是进程优先级 cpu资源分配的先后顺序,就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上&#x…

SpringBoot与MyBatis的快速整合(基于注解)

文章目录 创建Spring Boot项目配置数据库连接信息编写MyBatis Mapper接口使用XML文件编写SQL映射配置数据源切换引入Druid依赖配置Druid数据源 配置MyBatis支持事务管理 在使用Spring Boot创建新项目或新模块时,如果需要使用MyBatis来进行数据库操作,可以…

基于springboot的教学管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,教师管理,学生管理,课程管理 教师账户功能包括:系统首页,个人中心,学生管理,课程管理,课程表…

8.数砖数

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/879 题目描述 给定一种 2222 规格的瓷砖,…

樱花动漫2024最新网页地址链接

大家好!今天我要为大家种草一个非常棒的动漫资源在线平台——樱花动漫网页。作为一个网络文化研究者,我一直在关注当代动漫文化的发展和传播方式。而樱花动漫网页正是我近期发现的一颗璀璨明珠,它不仅为动漫爱好者提供了一个交流、分享的平台…

python机器人编程@我从0开始搭建了一个色块自动抓取机器人,并实现了大模型的接入和语音控制——(上基础篇)

目录 1、前言2、仿真环境的搭建3、仿真环境资源链接4、总结1、前言 在现代社会中,机器人技术正变得越来越普遍和重要。机器人的自动化能力使其能够在许多不同的领域发挥作用,例如生产线、医疗保健和家庭助理等。本系列将着重介绍如何搭建一个自动色块抓取机器人。 首先,我…

大模型相关:ChatGPT的原理与架构

一、大模型面临的挑战 1.1 Transformer模型的缺陷: 与RNN相比Transformer面临以下挑战: 并行计算能力不足。RNN需要按序处理序列数据中的每个时间步,这限制了它在训练过程中充分利用现代GPU的并行计算能力,从而影响训练效率。长…

【qt】项目移植

项目移植 一.前言二.同名问题三.具体操作1.修改文件名2.修改类名3.修改一些不能自动改的名4.修改.ui文件5.删除原来自动生成的ui_xxx.h文件6.修改头文件 四.导入项目五.使用导入的项目六.项目建议 一.前言 终于概率论考完了,有时间了,接着上个项目,我们继续来完成我们的多窗口开…

新材料正不断推动模具3D打印行业发展

随着工业4.0的浪潮席卷全球,模具制造行业也迎来了技术革新的新纪元。3D打印技术以其独特的制造优势,正逐渐在模具制造领域崭露头角。然而,要实现模具3D打印技术的广泛应用,高性能的打印材料是不可或缺的关键因素。 材料是模具3D打…

【机器学习】我们该如何评价GPT-4o?GPT-4o的技术能力分析以及前言探索

目录 🤦‍♀️GPT-4o是什么? 🚍GPT-4o的技术能力 1. 自然语言理解 2. 自然语言生成 3. 对话系统 4. 语言翻译 5. 文本纠错 6. 知识问答 7. 定制和微调 8. 透明性和可解释性 9. 扩展性 🚐版本对比分析 1. GPT-4标准版 …

AMD GPU ISA 阅读

Reading AMD GPU ISA — ROCm Blogs 对于应用开发者来说,了解用于执行其计算的 GPU 架构的指令集架构(ISA)通常是非常有帮助的。理解感兴趣的代码区域的指令可以帮助调试和实现应用程序的性能优化。 在这篇博客文章中,我们将讨论…

智能变电站网络报文记录及故障录波分析装置

是基于Intel X86、PowerPC、FPGA等技术的高度集成化的硬件平台,采用了高性能CPU无风扇散热、网络数据采集、高速数据压缩存储加密等多种技术,实现了高性能计算、多端口同步高速数据采集、数据实时分析、大容量数据存储等功能。 ● 在满足工业标准的同时&…

深度学习笔记: 最详尽广告点击预测系统设计

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 广告点击预测 1. 问题描述 建立一个机器学习模型来预测广告是否会被点击。 为了简化,我们不…

保姆级 | MySQL的安装配置教程(非常详细)

一、下载Mysql 官网步骤 MySQLhttps://www.mysql.com/进入官网首页 点击DOWNLOADS 点击MySQL Community (GPL) Downloads 点击 小页面直接进入 MySQL :: Download MySQL Installerhttps://dev.mysql.com/downloads/installer/点击“Download”下载最新版本,其他…

Java进阶_抽象类与方法

抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之…

程序员学习Processing和TouchDesigner视觉编程相关工具

Proessing Processing 是一种用于视觉艺术和创意编程的开发环境和编程语言。它最初是为了帮助非专业程序员学习编程,特别是那些对于创意编程和视觉表达感兴趣的人。Processing 提供了简单易用的 API,使得绘制图形、创建动画和交互式应用变得相对容易。 …

ssm615基于ssm的房源管理系统+vue【已测试】

前言:👩‍💻 计算机行业的同仁们,大家好!作为专注于Java领域多年的开发者,我非常理解实践案例的重要性。以下是一些我认为有助于提升你们技能的资源: 👩‍💻 SpringBoot…

DALL·E2最详细解读篇章

CLIP被证明其可以学习到鲁棒的图像特征,可以有效的捕获图像的语义和风格,且具有很强的zero-shot能力。另外,Diffusion是目前最优的生成式框架,其推动了图像、视频生成任务的最先进性能。Classifier-Free Diffusion指导技术以样本多…

H.264官方文档下载

H.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。其官方文档可以在ITU官网上下载:https://www.…