反弹shell的原理
文件描述符与重定向
先来看这个
第一个 >
符号,将标准输出的内容重定向到文件 test.txt
第二个 <
符号,似乎不太好理解?
在我们的印象中,cat似乎就是用来读文件的,但是实际上,cat还可以这么用:
也就是说,我们输入的数据,cat 会原封不动的打印出来
cat 可以接收标准输入的数据,将其打印在标准输出(屏幕)上
于是我们就可以将标准输入这个文件描述符指向 test.txt
,从而打印其内容
实际上,
<
称为输入重定向符,<
等价于0<
>
称为输出重定向符,>
等价于1>
不行你看
实际上,Linux中总共提供了三个文件描述符
- 0 标准输入
- 1 标准输出
- 2 标准错误输出
这三个文件描述符,实际上就是三个指针,我们可以随时改变它们的指向。比如上文提到的,将标准输出指向了一个文件,将标准输入也指向了一个文件。
同样的,标准错误输出也可以重定向到一个文件中,不过由于 >
默认等价于 1>
,所以我们需要写明