Answers:
它更新提示以回显当前工作目录(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}"
据我所知,“ file:// $ HOSTNAME”被掩盖了,所以您看不到远程协议:主机间谍活动。
update_terminal_cwd
不是环境变量,而是函数的名称。它以明文形式定义,/etc/bashrc
并且该printf
功能除了在屏幕上打印格式化的字符串外,不能执行任何其他操作。最后,您发布的vuln链接涉及通过将文本附加到环境变量定义中来执行任意功能……这与在此讨论的内容无关。浏览器与wtf和shell脚本有关吗?
typeset -f
,它将显示所有“用户定义”功能,这就是弹出的方式。如果他们试图做一些粗略的事情,他们将不会轻易地使它可见。