Расшифровка с использованием Цезаря Шифра

Simplest: замените «magic» на «eval echo».

$ eval echo "~"
/whatever/the/f/the/home/directory/is

Проблема: вы столкнетесь с проблемами с другими переменными, потому что eval - это зло. Например:

$ # home is /Users/Hacker$(s)
$ s="echo SCARY COMMAND"
$ eval echo $(eval echo "~")
/Users/HackerSCARY COMMAND

Обратите внимание, что вопрос об инъекции не происходит при первом расширении. Поэтому, если вы просто заменили magic на eval echo, вы должны быть в порядке. Но если вы сделаете echo $(eval echo ~), это будет восприимчиво к инъекции.

Аналогичным образом, если вы eval echo ~ вместо eval echo "~", это будет считаться удвоенным, и, следовательно, инъекция будет возможна сразу .

1
задан Johnny DelMonte 1 March 2019 в 02:12
поделиться