看题目,Mommy! what is PATH environment in Linux?,联想到题目shellshock利用环境变量执行命令的技巧,尝试了多次,如:
./cmd1 pwd &"env X={ : ;} PATH='/bin/sh' bash /bin/sh" 和./cmd1 &a
但是,会输出奇怪的内容:
第一条命令输出:
[1] 84342
-bash: env X={ : ;} PATH='/bin/sh' bash /bin/sh: No such file or directory
cmd1@prowl:~$ /home/cmd1
^C
[1]+ Done ./cmd1 pwd
第二条命令输入:
[1] 383016
a: command not found
cmd1@prowl:~$ cmd1: command not found
[1]+ Exit 127 cmd1
然而没发现怎么利用。
查了writeup后发现,解题过程没有用到环境变量,唯一有关的时利用了环境变量本身的含义,即sh下的命令调用的是环境变量定义的路径下的文件。
通过查看源代码,发现第一个参数将被system执行,但过滤了tmp sh flag三个字符串,可使用/bin/cat fla* 绕过。
不