Ответы:
Он обновляет запрос на отображение текущего рабочего каталога (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"
}
xterm
управляющий код для установки текста в строке заголовка. Наиболее доступной документацией является, пожалуй, Linux Bash Prompt Howto . В источниках есть реальная документация xterm
, IIRC.
/etc/bashrc
, он использует переменную, $TERM_PROGRAM
чтобы определить терминал и запустить соответствующий, /etc/bashrc_$TERM_PROGRAM
если он существует. Таким образом, в сеансе экрана, $TERM_PROGRAM
вероятно, не установлен или установлен на что-то другое, чем Apple_Terminal
.
Строка формата с непрозрачным секретным кодированием, '\ e] 7;% s \ a'. Подозреваемый.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
Из того, что я собираю, "file: // $ HOSTNAME" замаскирован, поэтому вы не можете видеть удаленный протокол: шпионаж хоста.
update_terminal_cwd
это не переменная окружения, это имя функции. Он определен в виде обычного текста, /etc/bashrc
и printf
функция не может ничего делать, кроме печати отформатированных строк на экране. Наконец, ссылка на vuln, которую вы разместили, включает в себя выполнение произвольных функций путем добавления текста к определению переменной среды ... который не имеет ничего общего с тем, что обсуждается здесь. И как браузеры имеют отношение к сценариям оболочки?
typeset -f
он покажет все «пользовательские» функции, и вот как это появилось. Если бы они пытались сделать что-то отрывочное, они бы не сделали это легко заметным.