我有一个即将到来的testing,看看过去几年,他们总是问一个类似的问题。 基本上可以通过设置如下所示的安全漏洞:
PATH=".:/bin:/usr/bin"
我得到这个PATH决定当用户调用诸如“ls”之类的命令时要search可执行文件的绝对目录。 我只是不确定上面会导致什么样的行为。
看来它会首先检查“/ bin”目录的当前目录(基于“。”),然后进入绝对目录“/ usr / bin”(如果没有的话)。 问题是,如果一个叫做“ls”的用户和一个攻击者在当前目录下创build了一个“/ bin”,它可能包含一个ls版本,例如删除一堆文件。
这是正确的轨道还是我误解了PATH符号?
PATH = “:/ bin中:在/ usr / bin中”
你误解了符号,冒号是分隔符,所以这将检查下列地方(按顺序)
在path上有“/ bin”和“/ usr / bin”是完全正常的。
有“。” 在path上,特别是作为首要的search是危险的,因为当前目录经常是可以由一个或多个其他用户写入的目录。 这些用户可以在你可能无意中执行的目录中创build文件(例如创build一个名为“ls”的文件),让他们能够让你的用户执行他们的代码。