RCE学习(一)

news2024/11/23 7:13:41

一.知识点

RCE:远程命令/代码执行漏洞,简称为RCE漏洞,可以直接向服务器后台远程注入操作系统的命令或者代码,从而拿到服务器后台的权限。RCE分为远程执行命令(执行ping命令)和远程代码执行eval

简单来说就是:可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统

一)常见的连接符

1.拼接命令

分号;:多个命令无论对错 顺序执行

eg         A ; B     先执行A,再执行B

&:作用和分号一样,但是在使用的时候要把&进行URL编码为%26才能正常执行

eg        A & B    简单的拼接

&&:前面命令执行不成功后面命令无法执行

eg        A&&B    A执行成功之后才会执行B

管道输出符|:前面命令的输出作为后面命令的输入,把前面命令的结果作为后面命令的参数;前面后面的命令都执行,但是只显示后面的命令执行结果。

A | B      显示B的执行结果

||:前面的命令执行成功,则后面的命令不会执行;前面的命令执行失败,则后面的命令执行(类似if-else语句)

eg         A || B     A执行失败之后才会执行B

###       在特殊情况下可代替空格

二)常见的命令

(1)、Windows

1.type  显示文本文件内容

type x:\1.txt                      //显示x盘下的1.txt文件内容

type x:\1.txt | more            //分页显示x盘里1.txt的内容

more 1.txt                         //逐屏显示当目下1.txt的文本内容(空格:下一屏 q:退出)

2.dir  显示目录里的内容

dir                //显示当前目录里的子文件夹和文件

dir /b            //只显示当前目录子文件夹、文件的文件名

dir /p            //分页显示当前目录子文件夹、文件

dir /ad          //只显示当前目录中的文件夹

dir /a-d         //显示当目里的文件

dir x:/a         //显示x盘下a文件夹中的内容

dir 1.txt        //显示当目下1.txt的信息

dir /s            //递归显示当目中的内容   ctrl c终止当前命令

dir a*           //显示当目下a开头的文件、文件夹信息

dir /ah /os    //显示当目下隐藏的文件和目录,按文件大小从小到大排序

(2)Linux

1、ls:列出目录

2、pwd:显示当前所在的目录

3、cat:由第一行开始查看文件

4、tac:由最后一行到第一行查看

5、more:逐项查看文件,按空格继续,最后自己退出

6、less:逐行查看文件,按方向键,不可主动退出,按q退出

7、head:只查看文件前十行

8、tail:只查看文件后十行

三)替换符

%0a 换行符

%0d 回车符

$*   在shell命令执行下为空

${IFS} 表示空格

  • 一般做题步骤

分三步执行:

1、ping

2、进入flag_is_here文件夹

3、列举flag_is_here文件夹下的文件

五)空格绕过

关于preg_match函数

利用 preg_match(),我们可以完成字符串的规则匹配。如果找到一个匹配,preg_match() 函数返回 1,否则返回 0。还有一个可选的第三参数可以让你把匹配的部分存在一个数组中。在验证数据时这个功能可以变得非常有用。

函数形式

preg_match(string $pattern, string $subject, array &$matches);

pattern

要搜索的模式串,字符串类型
sbuject

输入的字符串,字符串类型
matches

可选,用来存放搜索结果,$matches[0]存放所有匹配的字符串,$matches[1]用来存放第一个匹配的字符串,$matches[2]用来存放第三个匹配的字符串,以此类推
 

二.实训

1.[ACTF2020 新生赛]Exec

先用127.0.0.1ping一下 正常显示 查看根目录 没发现flag 继续访问上一级目录 发现flag

127.0.0.1|ls

输入127.0.0.1|ls.. /

输入127.0.0.1|cat /flag

2.[GXYCTF2019]Ping Ping Ping

先用127.0.0.1ping一下 正常回显 查看当前目录 发现了flag 之后发现符号被禁止了 使用替换符 再次查看flag 发现又被禁了 所以我们先查看根目录即可看到什么语句符号被禁 之后便可以据此修改抓取flag 即可得到。

3.ctfhub综合练习

本题过滤许多,尝试逐步绕过

首先列举目录127.0.0.1%0als# 其次列举文件夹下的文件 看到了一些禁用的符号对命令进行修改逐个绕过

127.0.0.1%0Als${IFS}f’’lag_is_here

看到了flag所在 于是查看文件内容

127.0.0.1%0als${IFS}cdf’’lag_is_here%0atac${IFS}f’’lag_

最后查看源码 即可找到本题flag

4.[FBCTF2019]RCEService

打开网页,发现输入框,提示命令以json格式输入,先试试:

{"cmd": "ls"}

发现了回显根目录,输入其他命令发现进行了过滤,说明用到了preg_match函数。

因为preg_match函数只匹配第一行,所以可以利用换行符%0A来构造payload。

查看home目录:

/?cmd={%0A"cmd": "ls /home"%0A}

发现rceservice文件夹,查看rceservice文件夹:

/?cmd={%0A"cmd": "ls /home/rceservice"%0A}

发现flagjail两个文件,输出flag文件,输入url:

/?cmd={%0A"cmd": "/bin/cat /home/rceservice/flag"%0A}即可查看到flag

参考资料:https://blog.csdn.net/kongtaoxing/article/details/124201990

http://t.csdnimg.cn/MqASO

http://t.csdnimg.cn/qIJrS

http://t.csdnimg.cn/C9KT5

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

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

相关文章

【数据结构】时间复杂度和空间复杂度解析

数据结构前言: 1. 什么是数据结构 打个比方来说不同的数据就相当于不同的书籍,我们经常在图书馆可以看到不同类别的书籍会被整理放在书架上方便查看存放,数据结构就是一种计算机存储管理数据的方式。 2. 什么是算法 算法就是一系列的计算…

蓝桥杯练习系统(算法训练)ALGO-953 混合积

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 众所周知,人人都在学习线性代数,既然都学过,那么解决本题应该很方便。   宇宙大战中&…

上位机图像处理和嵌入式模块部署(树莓派4b和pyqt5界面开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在大部分linux程序开发中,一般是没有界面的。不过不排除有些场合,是需要用界面进行数据交互、调参使用的。这种情况下一般就…

JavaScript+B/S版云LIS系统源码ASP.NET CORE 3.1 MVC云LIS系统如何实现样本追踪的预警功能?医院云LIS检验系统源码

JavaScriptB/S版云LIS系统源码ASP.NET CORE 3.1 MVC云LIS系统如何实现样本追踪的预警功能?医院云LIS检验系统源码 实验室信息管理系统(Trasen Laboratory Information Management System)是一套专业的医疗实验室信息管理软件,包含…

远程链接linux

远程连接 ssh 远程登录操作,ssh会对用用户进行身份信息的验证,会对两台主机之间发通信数据进行加密 安装 ssh 远程登录的服务端 yum install -y openssh-server启动 ssh 服务 systemctl start ssh.service 关闭 ssh 服务 systemctl stop ssh.service …

伦敦金的交易时间段都适合投资吗?

是所有的交易时间段都适合投资。首先,让我们了解伦敦金的交易时间。伦敦金市场的交易时间分为两个主要时段:亚洲盘和欧美盘。亚洲盘通常在北京时间早晨6点至下午5点半左右,而欧美盘则从北京时间晚上8点半开始,一直到次日早晨4点半…

tomcat篇-windows 运行tomcat的startup.bat时,终端打印的中文显示为乱码

当运行Tomcat的startup.bat时,如果终端中中文显示为乱码,这通常是因为Tomcat使用的日志输出编码与Windows命令行默认的编码不匹配。针对这一问题,你可以尝试以下步骤来解决: 1、执行startup.bat,在输出的窗口右击&…

HCIP第二节

OSPF:开放式最短路径协议(属于IGP-内部网关路由协议) 一。OSPF的数据包类型 3层报头 协议号89 1.Hello:周期收发,用于邻居发现,关系建立,周期保活-10s/30s(路由之间相互认识&#…

如何搭建本地的 NPM 私有仓库 Nexus

NPM 本地私有仓库,是在本地搭建NPM私有仓库,对公司级别的组件库进行管理。在日常开发中,经常会遇到抽象公共组件的场景,在项目内部进行公用。新的项目开始时,也会拷贝一份创建一个新的项目,这样做不易于管理…

Day23.一刷数据结构算法(C语言版) 39组合总和;40组合总和II;131分割回文串

一、39组合总和 本题是集合里元素可以用无数次,那么和组合问题的差别,其实仅在于对startIndex上的控制 题目链接:组合总和 文章讲解:代码随想录 视频讲解:带你学透回溯算法-组合总和 (39.组合总和&#xff…

react核心知识

1. 对 React 的理解、特性 React 是靠数据驱动视图改变的一种框架,它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Chan…

界面组件DevExpress Blazor UI v23.2 - 网格、工具栏功能全新升级

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 DevExpress Blazor控件目前已经升级…

创新指南|如何通过用户研究打造更好的人工智能产品

每个人都对人工智能感到兴奋,但对错过机会 (FOMO) 的恐惧正在驱使公司将人工智能嵌入到每个产品功能中。这可能会导致以技术为中心的方法,从而掩盖产品开发的基本目标:创建真正解决用户问题并满足他们需求的解决方案。本文将介绍通过用户研究…

找不到msvcr100.dll怎么办,轻松解决msvcr100.dll丢失的5种方法

在我们日常与电脑相伴的工作与学习过程中,偶尔会遇到一些让人措手不及的软件运行问题。其中之一就是“msvcr100.dll丢失”。这个错误通常会导致某些程序无法正常运行。为了解决这个问题,本文将介绍5种常见的解决方法,帮助大家快速恢复程序的正…

Intelij Idea Push失败,出现git Authentication failed(验证失败)

目录 1、出现问题的原因 2、解决之法 1、出现问题的原因 能出现这种问题,最主要的原因是链接对上了,但用户验证失败了,即登录失败。 因为服务器转移或者换了git项目链接,导致你忘记了用户名密码,随意输入之后&…

Golang | Leetcode Golang题解之第58题最后一个单词的长度

题目: 题解: func lengthOfLastWord(s string) (ans int) {index : len(s) - 1for s[index] {index--}for index > 0 && s[index] ! {ansindex--}return }

【Docker】docker部署lnmp和搭建wordpress网站

环境准备 docker:192.168.67.30 虚拟机:4核4G systemctl stop firewalld systemctl disable firewalld setenforce 0 安装docker #安装依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2 #设置阿里云镜像 yum-config-manager --add…

Recruit App

招聘类APP小程序

调教AI给我写了一个KD树的算法

我不擅长C,但是目前需要用C写一个KD树的算法。首先我有一份点云数据,需要找给定坐标范围0.1mm内的所有点。 于是我开始问AI,他一开始给的答案,完全是错误的,但是我一步步给出反馈,告诉他的问题,…

机器学习-06-聚类算法总结

聚类总结 1.聚类 机器学习 任务 聚类 无label的 分类 label是离散的 回归 label是连续的 2.聚类算法-kmeans 划分聚类 思想: D中选取k个作为初始质心 repeat 计算所有点与质心的距离,分到近的质心簇 更新簇之间的质心 until 质心不改 不足&#xff…