远程命令执行/命令注入 之 命令连接符

2023-11-18

目录

一、理论

二、实践

windows 10

a | b

a || b

a && b

a & b

kali linux

a | b

a || b

a && b

a ; b


一、理论

远程命令执行可以用到的命令连接符,windows系统和linux系统各有4个,其中3个是共有的,各有1个是特有的:

  • windows系统:| ||&&&
  • linux系统:| ||&&;

各连接符含义如下:

  • |

管道操作符

可以把前一个命令的标准输出传输到后一个命令的标准输入

比如 a | b表示命令a的输出作为命令b的输入

在远程命令执行中,不管a的执行结果是否正确,b都可以执行

  • ||

逻辑或

注意该命令有短路的情况

比如 a || b,如果命令a执行成功,则命令b不会被执行;只有命令a执行失败的情况下,才会执行命令b

  • &&

逻辑与

注意该命令有短路的情况

比如 a && b,如果命令a执行失败,则命令b不会被执行;只有命令a执行成功的情况下,才会执行命令b

  • &

windows特有

允许在一行内从左向右顺序执行多条命令,前一条命令失败也不影响后一条命令的执行

比如 a & b,不管a是否执行成功,b命令都会执行

  • ;

(可能看不清,这是个分号)

linux系统特有

允许在一行内从左向右顺序执行多条命令,前一条命令失败也不影响后一条命令的执行

比如 a ; b,不管a是否执行成功,b命令都会执行

二、实践

下面分别在windows 10和kali linux中演示一下上面说的内容。

演示的时候用到的命令a为ping命令,命令b为whoami命令。

为啥用whoami命令呢?因为这个命令不但windows和linux系统都支持(windows xp不默认支持,可安装),而且显示的内容不同,不但可以用来判断是否有远程命令执行漏洞,还可以用来判断操作系统(linux系统中显示当前执行操作的用户名,windows系统中显示当前登录的域名和用户名)。

还有一点需要注意,命令和连接符之间有没有空格都可以

windows 10

a | b

a为真,b执行

a为假,b执行

a || b

a为真,b不执行

a为假,b执行

a && b

a为真,b执行

a为假,b不执行

a & b

a为真,b执行

a为假,b执行

 

kali linux

a | b

a为真,b执行

a为假,b执行

a || b

a为真,b不执行

a为假,b执行

a && b

a为真,b执行

a为假,b不执行

a ; b

a为真,b执行

a为假,b执行

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

远程命令执行/命令注入 之 命令连接符 的相关文章

  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 如何在拥有句柄时检查给定进程是否正在运行

    我在用ShellExecuteEx启动应用程序 成功开始阅读后TShellExecuteInfo hProcess获取已启动进程的句柄 我想定期检查我的应用程序启动的进程是否仍在运行 两个或多个同名进程可以同时运行 我想确保我的应用程序正在
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 如何将 Hudson/Jenkins 参数传递给 Windows 批处理命令

    好吧 我需要在我的 Hudson 作业中执行一个批处理文件 我有一个参数 Jenkis 参数 我需要将这个值 如参数 传递给批处理文件 我尝试了以下操作 Deploy cmd configuration DEPLOYCONFIGURATIO
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • CoAP数据包的大小是多少?

    我是这项技术的新手 有人可以帮助我了解一些疑问吗 Q 1 CoAP数据包的大小是多少 我知道有 4 字节固定标头 但是包括标头 选项和负载在内的最大大小限制是多少 Q 2 有像MQTT那样的Keep Alive的概念吗 它在UDP上工作 它
  • 内核模式下的线程(和进程)与用户模式下的线程(和进程)有什么区别?

    我的问题 1 书中现代操作系统 它说线程和进程可以处于内核模式或用户模式 但没有明确说明它们之间有什么区别 2 为什么内核态线程和进程的切换比用户态线程和进程的切换花费更多 3 现在 我正在学习Linux 我想知道如何在LINUX系统中分别
  • Notepad++ - 使函数“可点击”?

    我只是想这可能有用 但我找不到办法 在 Notepad 中 有没有一种方法可以使函数名称 可单击 即使它们成为链接 这样如果您单击它们 它会自动将您带到其定义 最好是跨整个代码库 目前还没有插件提供可直接单击的函数名称 但您可以尝试使用 S
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad

随机推荐

  • 二级下拉菜单布局(纵向、横向)

    一级菜单 在ul列表内建立li元素并清除默认样式 让所有li元素左浮动并清除浮动 DOM中文档结构如下 ul class clearfix li a href 1 a li li a href 2 a li li a href 3 a li
  • Jupyter远程配置

    安装Jupyter pip install jupyter 生成默认配置文件 jupyter notebook generate config 生成密钥 python gt gt gt from notebook auth import p
  • 【React】单页面应用限制多开登录

    react 单页面应用限制多开登录 情景 测试小姐姐提了一个 BUG 在同一浏览器中打开两个页面 两个页面分别登录不同的账号 A 页面先登录A B 页面再登录B 此时回到 A 页面 交互时账号数据应该刷新为 B 登录的账号 分析 这个问题
  • 怎么设置权限?后台管理系统中的功能权限和数据权限设置

    一 功能级 页面级 权限 不同的用户 角色 登录到管理系统后 看到的功能不一样 思路 前端进入登录页面 前端发送请求给后端 后端验证用户名和密码是否正确 如果验证通过 需要根据用户所属的角色查他对应功能 path 响应给前端 前端接收到后端
  • RK3568 CAN驱动更新说明

    RK3568 CAN问题 同时收发数据一段时间 几秒钟 can出现错误收发功能异常 必须重新down up恢复正常 内核更新rockchip canfd c iopoll h 配置Networking support gt CAN bus
  • 学习笔记-Matlab算法篇-图与网络

    图与网络 01基本概念 介绍 图分为无向图和有向图 一个无向图 undirected graph G是由一个非空有限集合 V G 和V G 中某些元素的无序对集合E G 构成的二元组 记为G V G E G V G 称为顶点集 E G 称为
  • openGL使用assimp加载fbx格式三维模型

    前言 前面的文章中有讲过assimp加载obj三维文档格式 如果想要加入纹理还得配合对应的mtl格式和png格式才能加入纹理 今天来说下使用assimp加载fbx格式的三维模型 先看下运行效果 使用fbx模型 1 assimp库下载以及配置
  • Cocos2d-Lua(Quick-Cocos2d-x)集成第三方SDK(一)

    在我们实际开发过程中 经常会遇到需要使用第三方SDK的情况 比如我们常用的 友盟 TalkingData之类的统计分析SDK 移动MM 电信爱游戏之类的计费SDK 个推 百度推送之类的推送SDK 诸如此类的在iOS平台也有一大堆 那么在使用
  • Python27编译成pyd, 遇到error: Unable to find vcvarsall.bat

    我目前遇到2种情况 前提安装了 Python27 Cython setup py from setuptools import setup from Cython Build import cythonize setup ext modul
  • Kubernetes 集群部署 ------ 二进制部署(二)

    单节点 https blog csdn net Yplayer001 article details 104234807 先具备单master1节点部署环境 三 master02部署 优先关闭防火墙和selinux服务 在master01上
  • SQL中GROUP BY用法示例

    概述 GROUP BY我们可以先从字面上来理解 GROUP表示分组 BY后面写字段名 就表示根据哪个字段进行分组 如果有用Excel比较多的话 GROUP BY比较类似Excel里面的透视表 GROUP BY必须得配合聚合函数来用 分组之后
  • react项目按需加载报错 .libraryName is not a valid Plugin property

    babel presets react app plugins import libraryName antd style true 原配置如上会报错 libraryName is not a valid Plugin property g
  • Linux-MySQL 5.7.30安装与配置及开机自启

    Linux MySQL5 7 30安装配置 1 准备 1 1 检测系统是否自带MySQL 1 2 如果有 则使用下面命令进行删除 1 3 删除成功后 查询所有Mysql对应的文件夹 1 4 删除上面查找的所有文件夹 2 安装 2 1 使用X
  • java 调用C#的webservice

    import java rmi RemoteException import java util regex Matcher import java util regex Pattern import javax xml rpc Servi
  • TPS-1教学:TPS-1主控MCU程序软件移植指南

    TPS 1教学 TPS 1主控MCU程序软件移植指南视频 TPS 1教学 TPS 1主控MCU程序软件移植指南 电子发烧友网
  • vue项目部署到服务器

    启动和打包 进入项目目录 cd 进入到你项目的根目录 安装依赖 npm install 强烈建议不要用直接使用 cnpm 安装 会有各种诡异的 bug 可以通过重新指定 registry 来解决 npm 安装速度慢的问题 npm insta
  • Codeup(云效)手把手教部署SpringCloud项目到私有主机

    博主介绍 小黄鸭技术 擅长领域 Java 实用工具 运维 系列专栏 开发工具 Java之路 八股文之路 如果文章写作时有错误的地方 请各位大佬指正 一起进步 欢迎大家点赞 收藏 评论 支持博主 开通云效 上传代码仓库 配置SSH公钥或者是H
  • 在 openEuler 20.03 LTS SP1 中安装 JupyterLab

    目录 一 安装 openEuler 20 03 LTS SP1 1 1 Hyper V 虚拟化环境设置 1 2 安装配置 二 升级 Python 到 3 9 1 2 1 安装开发包 2 2 安装 LibreSSL 替代 OpenSSL 非必
  • Error in v-on handler (Promise/async): “Error: Request failed with status code 500“

    Error in v on handler Promise async Error Request failed with status code 500 点击确定按钮 添加数据 POST请求 报了错 发现是这个POST请求需要传参 传对象
  • 远程命令执行/命令注入 之 命令连接符

    目录 一 理论 二 实践 windows 10 a b a b a b a b kali linux a b a b a b a b 一 理论 远程命令执行可以用到的命令连接符 windows系统和linux系统各有4个 其中3个是共有的