点击蓝字 关注我们
欢迎转发,请勿抄袭!
很简洁的代码,就是提交的命令不能超过4位,这下有点犯难~~~
那就先从4位长度的解题思路入手。简单概括一下4位解题的方法:
f> 最终生成的文件名,为了不影响 dir 要把名字改的在d后面
ht-
sl
dir 生成dir文件,然后 * 就是dir的效果了
*>v 把dir的效果输出到v里面
rev 创建一个v
*v>0 反向结果输出到0
sh 0 运行
从中学习到>xx 是创建xx文件,*>x 将创建的文件名当成命令执行写入到x。于是萌生了一个办法,在linux环境下可以查看文件的两位命令。
思路通过执行
xx 创建xx
xx为执行命令,但是xx是一个能显示代码的命令,之后通过执行
*>x
将xx执行写到x文件。
最后发现nl最为合适,nl: 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。 在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行。
于是构造>nl创建了nl文件,再ls查看得到
那么再次执行
*>a
就相当于执行了(重要条件,nl一定要在左边才能执行,按照字母顺序排序的)
nl xxx.php zzz.php
得到a文件,
下载文件a,即可得到后面两个文件的内容。
这道题打破常见的4位字符的ctf坑,太难了~
危险⚠:
rm 创建rm文件
*>a 可以删除r文件名后面的文件(前提rm 在左边)
文章声明:请勿非法,文章仅供学习交流
扫码关注我们
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论