Linux反弹shell之文件描述符与重定向

在测试java框架任意命令执行漏洞的时候 对文档中java版的exec执行反弹shell命令看的不是太明白 就研究下反弹shell 在这之前 重定向操作符看来是一定要了解下的

文件描述符

之前写过一篇文章简单介绍 文件描述符

当Linux启动的时候会默认打开三个文件描述符,分别是:

标准输入  standard input 0 (默认设备键盘)
标准输出  standard output 1(默认设备显示器)
错误输出  error output 2(默认设备显示器)

文件所有输入输出都是由该进程所有打开的文件描述符控制的。(Linux一切皆文件,就连键盘显示器设备都是文件,因此他们的输入输出也是由文件描述符控制)

一条命令执行以前先会按照默认的情况进行绑定(也就是上面所说的 0,1,2),如果我们有时候需要让输出不显示在显示器上,而是输出到文件或者其他设备,那我们就需要重定向。

 

重定向

重定向就是针对文件描述符的操作  < 是对标准输入 0 重定向 ,> 是对标准输出 1 重定向

重定向主要分为两种(其他复杂的都是从这两种衍生而来的):

(1)输入重定向 < 
(2)输出重定向 >

重定向操作符

>   将命令输出写入到文件或设备(例如打印机)中,而不是写在命令提示符窗口中

<   从文件中而不是从键盘中读入命令输入

>> 将命令输出添加到文件末尾而不删除文件中的信息

>& 从一个句柄读取输入并将其写入到另一个句柄输出中

|    从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道

1、输入重定向

格式: [n]< word 

说明:将文件描述符 n 重定向到 word 指代的文件(以只读方式打开),如果n省略就是0(标准输入)

03.png

解释: 解析器解析到 "<" 以后会先处理重定向,将标准输入重定向到a.txt,之后cat再从标准输入读取指令的时候,由于标准输入已经重定向到了a.txt ,于是cat就从file中读取指令了 好像不怎么好理解

2、输出重定向

格式: [n]> word

说明: 将文件描述符 n 重定向到word 指代的文件(以写的方式打开),如果n 省略则默认就是 1(标准输出)

echo fuck86.com >a.txt  写入文件

echo fuck86.com >>a.txt 追加写入文件

ls 1>a.txt   将ls结果重定向标准输入设备文件操作符的到a.txt文件中 

02.png

 

本博客所有文章如无特别注明均为原创。作者:odaycaogen复制或转载请以超链接形式注明转自 123``blog
原文地址《Linux反弹shell之文件描述符与重定向

郑重声明:本文只做技术交流学习使用,请尊重当地法规法律,勿对企业或个人网站及app进行破坏。如产生连带法律责任 123``blog 作者本人概不负责。

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)