3位长度的命令执行

admin 2020年8月29日22:17:16评论465 views字数 693阅读2分18秒阅读模式

点击蓝字 关注我们


        欢迎转发,请勿抄袭!

        源自于一次同事转发给我的红包题目,ctfshow里面的红包题目,打开链接,看了看。题目是这样子。

3位长度的命令执行

        很简洁的代码,就是提交的命令不能超过4位,这下有点犯难~~~

        那就先从4位长度的解题思路入手。简单概括一下4位解题的方法:

>f>     最终生成的文件名,为了不影响 dir 要把名字改的在d后面>ht->sl>dir       生成dir文件,然后 * 就是dir的效果了*>v         把dir的效果输出到v里面>rev        创建一个v*v>0       反向结果输出到0sh 0       运行

 从中学习到>xx 是创建xx文件,*>x 将创建的文件名当成命令执行写入到x。于是萌生了一个办法,在linux环境下可以查看文件的两位命令。

思路通过执行

>xx 创建xx

xx为执行命令,但是xx是一个能显示代码的命令,之后通过执行

*>x

将xx执行写到x文件。

        最后发现nl最为合适,nl: 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。 在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行。

        于是构造>nl创建了nl文件,再ls查看得到

3位长度的命令执行

那么再次执行

 *>a

就相当于执行了(重要条件,nl一定要在左边才能执行,按照字母顺序排序的)

nl xxx.php zzz.php

得到a文件,

3位长度的命令执行

下载文件a,即可得到后面两个文件的内容。

3位长度的命令执行

        这道题打破常见的4位字符的ctf坑,太难了~

危险⚠:

>rm 创建rm文件*>a 可以删除r文件名后面的文件(前提rm 在左边)

 文章声明:请勿非法,文章仅供学习交流


3位长度的命令执行



扫码关注我们


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年8月29日22:17:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   3位长度的命令执行http://cn-sec.com/archives/109158.html

发表评论

匿名网友 填写信息