Add brace expansion encoder and update ${IFS} encoder #10516
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Brace expansion can be used as a whitespace encoder in supported shells.
Caveats
This encoder assumes that shell metacharacters like
{
and}
will already be escaped or quoted in the unencoded payload. Note that you may not need to escape those metachars if used without special meaning.For an example, consider
xargs -I {}
:Naturally, the shell you're injecting into needs to have brace expansion.
bash
is a common one, and sometimes/bin/sh
is symlinked to it.Verification Steps
cmd/ifs
encoder for regressionscmd/brace
encoderExamples