Rav*_*ure 4 linux security bash
我最近读到在 bash 脚本中使用不带引号的参数是危险的。我的问题是:
是否可以绕过条件以使其始终为真?
if test $TOTO -eq ${1} 2>/dev/null; then
echo "Bypass"
else
echo "No"
fi
Run Code Online (Sandbox Code Playgroud)
问候,
电阻
如果您问是否可以选择一个参数,$1
以便此条件对于 的任何整数值都为真$TOTO
,则可以:
./yourscript "0 -o foo"
Run Code Online (Sandbox Code Playgroud)
这使得任何条件成为
test 1234 -eq 0 -o foo
Run Code Online (Sandbox Code Playgroud)
这相当于1234 == 0 || "foo"
在其他语言中,进行了一个不相关的比较或与字符串的真值进行了或运算foo
。
由于test
认为所有非空字符串都为真,因此该表达式始终为真。
归档时间: |
|
查看次数: |
2126 次 |
最近记录: |