Відповіді:
Він оновлює підказку, щоб відлучити Поточний робочий каталог (CWD), і визначається у /etc/bashrc:
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
/etc/bashrc, вона використовує змінну $TERM_PROGRAMдля визначення терміналу та запуску відповідного, /etc/bashrc_$TERM_PROGRAMякщо він існує. Отже, на екрані сеансу, $TERM_PROGRAMймовірно, не встановлено або встановлено щось інше, ніж Apple_Terminal.
Непрозорий секретний рядок закодованого формату, '\ e] 7;% s \ a'. Підозрюваний.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
З того, що я збираю, "файл: // $ HOSTNAME" маскується, щоб ви не могли бачити віддалений протокол: шпигунство хоста.
update_terminal_cwdне є змінною середовища, це ім'я функції. Він визначений чітким текстом у, /etc/bashrcа printfфункція не має можливості робити нічого, крім друку відформатованих рядків на екран. Нарешті, посилання vuln, яке ви опублікували, передбачає виконання довільних функцій шляхом додавання тексту до визначення змінної середовища ... що не має нічого спільного з тим, що тут обговорюється. І що wtf мають стосунки до сценаріїв оболонок?
typeset -fвін покаже всі "визначені користувачем" функції, і ось як це спливе. Якби вони намагалися зробити щось схематичне, вони не зробили б це легко помітним.