PHP exec() 函数和 escapeshellarg 函数仍然允许命令注入

问题描述 投票:0回答:1

我一直在尝试修复用户输入传递到 php exec 函数的漏洞。使用 escapeshellarg 对输入进行清理,但它似乎仍然允许注入和执行代码。我通过执行 nslookup 使用 Burp Suite 的协作者功能对此进行了测试。

我无法提供确切的代码,但下面是一个非常接近的示例。有人可以解释一下为什么这有效吗?

$input = 'filename$(whoami).pdf';

$cmd = 'rm -rf ' . escapeshellarg($input) . ' 2>&1';
exec($cmd);
php unix
1个回答
0
投票

逃跑攻击命令不够。 攻击者避免逃逸功能。

基本上不应该使用exec()函数。 因为,exec()函数是一个非常强大的函数,所以,func给了我们意想不到的举动。

© www.soinside.com 2019 - 2024. All rights reserved.