是否有可能通过读取和/或引号引起外壳注入?

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

考虑(尝试的)shell注入的此示例:

test1.sh:

#!/bin/sh
read FOO
echo ${FOO}

z.dat:

foo && sleep 1 && echo 'exploited'

然后运行:

cat z.dat | ./test.sh 

在我的机器(Ubuntu w / bash)上,有效载荷始终(正确)被视为单个字符串,并且从不执​​行恶意的sleep和echo命令。

问题1:是否可以修改z.dat,以使test.sh易于注入?特别是是否存在特定的外壳可能容易受到攻击?

问题2:如果是这样,更改测试脚本以引用变量(如下所示)是绝对防御吗?

test2.sh:

#!/bin/sh
read FOO
echo "${FOO}"

谢谢!

bash security
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.