Bash: unquoted expression injection
root-me challenge: Bash - unquoted expression injection: Bypass this script’s security to recover the validation password.
./somescript "0 -o foo"
makes any condition become
test 1234 -eq 0 -o foo
This is the equivalent of 1234 == 0 || "foo"
in other languages, with one irrelevant comparison OR
’d with the truth value of the string foo
.
All non-empty strings are considered to be true, so this expression is always true.