购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第3章
文件操作

当获得一个Shell(无论是WebShell还是CmdShell)时,有时需要将要利用的程序或文件上传至目标服务器,有时需要将目标服务器上的文件下载至本地。如果文件过大(如Web日志、程序源码、数据库文件),则还会面临丢包、效率低等问题。现在市面上常见的WebShell管理工具都自带文件管理器功能,可以一键完成上传、下载、新建、删除等操作。如果使用的是CmdShell,那么就稍微麻烦一些,需要利用服务器自带的程序或第三方软件来进行这些操作。

本章将介绍在Windows的CmdShell、PowerShell和Linux的BashShell下如何进行文件的上传、下载、解压和压缩等操作。通过本章的学习,读者将掌握文件操作的基本方法和技巧,为后续章节的实操阶段中的文件传输环节提供必要的技术支持。

3.1 Windows文件操作

3.1.1 文件创建/写入

1.cmd

1)使用“set”命令创建并写入文件。

2)使用“echo”命令创建并写入文件。

3)使用“echo”命令追加写入文件。

4)使用“set”命令不换行追加写入文件。

5)使用“echo”命令覆盖原文件内容后写入。

6)使用“echo”命令无空格创建并写入文件。

7)创建空文件。

8)复制文件。

9)移动文件。

2.PowerShell

1)执行命令“Set-Content”创建并写入文件。

2)执行命令“write-output”,对文件内容进行编码后创建并写入文件。

3)执行命令“New-Item”创建一个空文件。

4)执行命令“Copy-Item”复制一个文件。

5)执行命令“Move-Item”移动文件。

3.1.2 文件读取

1)执行命令“type”查看文件内容。

2)执行命令PowerShell cmdlet“Get-Content”查看文件内容。

3.1.3 文件下载

1.PowerShell

1)使用System.Net.WebClient类下载文件。

2)下载并执行。

3)使用Invoke-WebRequest模块下载文件。

4)使用后台智能传输服务BitsTransfer下载文件。

2.PHP

将以下代码保存为download.php。

执行以下命令从远程下载文件到服务器。

3.Python

4.VBS

1)将以下代码保存为1.vbs,执行命令“cscript 1.vbs”下载文件。

2)将以下代码保存为1.vbs,执行命令“cscript 1.vbs”下载文件。

3)将以下代码保存为1.vbs。

执行以下命令下载文件。

5.bitsadmin

bitsadmin(后台智能传送服务)是Windows系统内置的一个命令行工具,用于创建、下载或上传作业并监视作业进度。

6.certutil

certutil.exe是Windows系统内置的工具,是Windows证书服务工具组件的一部分。它不仅可以实现转储和显示证书颁发机构等操作,还可以下载文件,以编码形式传输文件。

使用certutil传输文件会生成缓存,位置为%USERPROFILE%\AppData\LocalLow\Microsoft\CryptnetUrlCache\Content。执行以下命令可删除缓存。

3.1.4 文件压缩/解压

1.makecab/expand

makecab是Windows内置的无损数据压缩工具,expand是Windows内置的解压缩软件,可以解压由makecab制作的压缩文件。

执行以下命令可打包单个文件。

执行以下命令解压一个由makecab制作的文件。

批量压缩时,首先把当前目录或其他目录中需要压缩的文件名写入一个文本文件file.txt中,格式如图3-1所示。执行以下命令可压缩多个文件。

该命令会在当前目录中生成一个文件夹,压缩包保存在此文件夹中。如果压缩的文件过大,那么添加参数“/d MaxDiskSize=0”可取消大小限制。

图3-1 把需要压缩的文件名写入一个文本文件中

执行expand命令可解压多个文件。

2.WinRAR

WinRAR是一种非常流行且功能强大的压缩包管理器,不仅有着方便的图形化的压缩、解压缩界面,还支持命令行操作。在WinRAR安装目录中,有可执行文件rar.exe和UnRAR.exe,分别用作压缩和解压缩文件。

1)执行以下命令将C:\test文件夹下的所有文件压缩为rar.rar。

2)执行以下命令,只压缩某个文件。

3)添加参数-p,为压缩包添加密码,需要在交互模式下。

参数a代表添加文件到压缩文档中,参数-r代表递归子目录压缩,参数-m3代表压缩等级为标准,压缩等级从0~5。

4)执行以下命令解压压缩包。

3.7-Zip

7-Zip是一款免费且开源的文件归档工具,适用于Windows、Linux和Mac OS。它支持多种文件格式,包括7z、ZIP、RAR、GZIP、TAR和BZIP2,可用于压缩和解压缩文件及文件夹,还支持加密。

1)执行以下命令将C:\test文件夹下的所有文件压缩为test.7z。

2)执行以下命令,只压缩某个文件。

3)添加参数-p,为压缩包添加密码。

参数a代表添加文件到压缩文档中,参数-r代表递归子目录压缩。

4)执行以下命令解压压缩包到C:\users\文件夹中。

参数-o指定解压后释放文件的位置。

4.BandiZip

Bandizip是一款Windows文件归档和压缩程序,支持多种文件格式的压缩和解压缩,包括ZIP、RAR、7Z、TAR等。

1)执行以下命令,将C:\test文件夹下的所有文件压缩为test.zip。

2)添加参数-p,为压缩包添加密码。

参数a代表添加文件到压缩文档中,参数-r代表递归子目录压缩。

3)执行以下命令解压压缩包到C:\inetpub\文件夹中。

5.PowerShell

PowerShell功能强大,当然也具备压缩与解压缩的功能。

1)执行以下PowerShell cmdlet压缩文件或文件夹,多个文件以逗号分隔。

2)执行以下PowerShell cmdlet解压压缩包。

3.2 Linux文件操作

3.2.1 文件创建/写入

1)使用“touch”命令创建空内容文件。

2)使用重定向创建空内容文件。

3)执行系统命令,并使用重定向符号将命令回显写入文件,例如输出ls命令的回显至文件中。

4)使用“echo”命令创建空内容文件。

5)使用“echo”命令创建文件,并将php一句话木马写入。

6)使用“echo”命令追加写入文件。

7)使用“echo”命令添加参数-e,处理特殊字符写入文件(例如,将\n作为换行符处理)。

8)使用“echo”命令写入多行内容到文件。

9)使用“echo”创建文件,然后将经过base64编码的php一句话木马写入文件。

10)使用“printf”命令创建文件,并将php一句话木马写入文件。

11)使用“cat”命令结合eof创建并编辑文件(exit方式同理)。

12)复制文件。

13)移动文件。

3.2.2 文件读取

1)执行“cat”命令查看文件内容。

2)执行“cat”命令查看文件内容并显示行号。

3)执行“less”命令查看文件,支持翻页、查找、跳转页等功能。

4)执行“more”命令查看文件,支持分页显示。

5)执行“head”命令查看文件前几行内容。

6)执行“tail”命令查看文件末尾几行内容。

3.2.3 文件搜索

1)在当前目录搜索指定文件名的文件。

2)在整个文件系统搜索指定文件名的文件。

3)按指定权限查找文件。

4)列出当前目录中所有“.php”文件内含有“$_POST”字符串的文件。

3.2.4 文件下载

1)通过“curl”命令下载文件。

2)使用“wget”命令下载文件。

3)使用“wget”命令断点续传下载文件。

4)使用Shell脚本,将以下代码保存为download文件。

执行以下命令,将远程文件下载至本地。

3.2.5 文件压缩/解压

tar是Linux系统中常用的文件归档工具,它用于将多个文件打包成一个文件(称为Tarball),扩展名一般为“.tar”。如果Tarball文件又经过压缩,那么扩展名通常为“.tar.gz”“.tar.bz2”。Tarball通常用于分发软件包、备份数据和通过Internet传输大型文件。

1)仅打包不压缩。

2)打包并进行“gzip”压缩。

3)解压“gzip”压缩文件。

4)排除指定文件类型后打包压缩文件。

5)只将指定类型文件打包压缩。

还有其他一些格式可以压缩和解压文件,如表3-1所示。

表3-1 其他格式的压缩和解压 wvS8W7jgTEgomEQjwiV99UNo86mk81TwIfgQklamAt+O8oXqB2MeTqbl8x+iSWj2

点击中间区域
呼出菜单
上一章
目录
下一章
×