#bash #shell #unix #shellshock-bash-bug
#bash #оболочка #unix #ошибка shellshock-bash
Вопрос:
Я изучаю уязвимость ShellShock и хотел протестировать более старые версии Bash.
Я скачал Bash 4.2 с веб-сайта GNU. После извлечения содержимого я скомпилировал его на основе руководства GNU следующим образом:
bash ./configure
make
После завершения я запускаю следующий эксплойт, чтобы проверить, уязвим ли bash:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Но он не напечатал «уязвимый», что означает, что он не уязвим, и я не понимаю, почему:
root@ubuntu:~/Desktop/bash-4.2# ./bash
root@ubuntu:~/Desktop/bash-4.2# echo $BASH_VERSION
4.2.0(1)-release
root@ubuntu:~/Desktop/bash-4.2# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
root@ubuntu:~/Desktop/bash-4.2#
Ответ №1:
Используйте ./bash
вместо bash
; ваша текущая попытка заканчивается выполнением экземпляра системного Bash по умолчанию, который, надеюсь, действительно не должен быть уязвимым.
Как правило, текущий каталог не включается в PATH
каталог и не должен включаться именно по таким причинам.