我试图更多地了解对我的答案所做的编辑:
https://unix.stackexchange.com/revisions/510388/5
cd "{}"
在 find 命令上下文中运行如何引入注入攻击漏洞?
作为参考,为覆盖该漏洞而进行的更改是:
diff --git a/command b/command
index 26488d0..fed4c07 100644
--- a/command
+++ b/command
@@ -1 +1 @@
-find . -type d -exec sh -c 'cd {} && echo "Spawning a shell in $PWD..." && sh' \;
+find . -type d -exec sh -c 'cd "$1" && echo "Spawning a shell in $PWD..." && sh' sh {} \;
答案1
目录名放在大括号所在的位置,然后受shell约束;考虑mkdir '$(reboot)'
在哪里find
可以找到它。然后您最终会sh
执行:cd $(reboot)
-- 或您想要想象的任何其他命令。该cd
命令可能会失败,除非攻击者非常狡猾并回显有效目录的名称,但无论如何,损害已经造成。对于作为 root 进行不太严格的测试,请尝试以下操作:
$ mkdir '$(touch .evil_file; echo directory-name)'`
你最终会得到这样的输出:
something
sh: line 0: cd: ./directory-name: No such file or directory
...和:
$ ls -a
. .. .evil_file $(touch .evil_file; echo directory-name)