相关疑难解决方法(0)

cat 任意文件有多安全?

有时当我cat错误地输入二进制文件时,我的终端会出现乱码。没有什么是快速reset解决不了的,但理论上攻击者不能创建一个文件,当在终端上显示时,它会执行一些任意代码吗?通过终端模拟器中的漏洞利用或其他方式。

terminal special-characters cat

79
推荐指数
5
解决办法
9967
查看次数

BASH 和回车行为

我有一个简单的问题。
bash(我使用的是 4.4.11)不显示分隔/以纯文本结尾的行/文本是否正常\r

看到这种行为,我有点惊讶:

$ a=$(printf "hello\ragain\rgeorge\r\n")
$ echo "$a"
george
Run Code Online (Sandbox Code Playgroud)

但是“你好再次”文本仍然存在,不知何故“隐藏”:

$ echo "$a" |od -w32 -t x1c
0000000  68  65  6c  6c  6f  0d  61  67  61  69  6e  0d  67  65  6f  72  67  65  0d  0a
          h   e   l   l   o  \r   a   g   a   i   n  \r   g   e   o   r   g   e  \r  \n
Run Code Online (Sandbox Code Playgroud)

只要我们玩 bash 就可以了……但这是否存在潜在的安全风险?如果变量“a”的内容来自外部世界并包含“坏命令”而不是“你好”怎么办?

另一个测试,这次有点不安全:

$ a=$(printf "ls;\rGeorge\n")
$ echo "$a"
George
$ eval "$a"
0                   awkprof.out       event-tester.log  helloworld.c …
Run Code Online (Sandbox Code Playgroud)

bash special-characters shell-script newlines

14
推荐指数
2
解决办法
5万
查看次数

为什么 Linux 在将文本粘贴到 shell 时允许退格?

在我遇到的许多 Linux 发行版中,将文本粘贴到 shell 时会包含退格字符。为什么不阻止粘贴这些字符——或者这个特性是否提供了一些有用的功能?

换句话说,Linux shell 是否“知道”它是粘贴的字符串——还是手动输入的?

这种行为如何处理?

shell security terminal-emulator terminal

3
推荐指数
1
解决办法
180
查看次数