一原理
前言:TCP/IP四层模型和OSI模型对照,以及FTP在模型中的位置。
• FTP( File Transfer Protocol), 从一个主机向一个主机传输文件的 协议 . 工作 流程中使用控制链接和数据连接两种方式来实现数据 传输
• FTP 客户端包含两部分: 用户接口 和 客户端接口 。用户 接口用来和用户进行人机交互,而客户端接口则负责 FTP 协议相关的处理 。
• FTP 协议的工作模式可以分为 主动模式 和 被动模式 ,两者的主要区别在于数据连接建立方式不同 :
• 主动模式 : 客户端连接成功后,主动告诉服务器数据连接的 端口
• 被动模式 :客户端连接成功后,在进行数据传输时临时连接服务器的 20 端口,利用此端口进行数据的传输。
• FTP 协议是基于 TCP 连接进行通信的,但它不同于 HTTP , TELNET 等协议。 他们之间最大的差别在于: FTP 协议是使用两个并行的连接来传输文件的 , 一个为 控制连接 , 另一个为 数据连接 。
• 控制连接 :用来在客户端和服务器之间传输控制信息。如:登陆认证时的 用户名和密码 , 上传 和 下载文件 , 切换目录 等,也就是说和 FTP 协议相关的命令都是通过控制连接在实现的 ;
• 数据连接 :主要用来实现文件的传输。如 上传下载的文件内容 都是通过该 TCP 连接上进行的 。
二.FTP登录
FTP 的登录涉及的 Response 、 Command 主要值注解:
• Command : USER—— 登录的用户名
• Command : PASS—— 密码
• Command : SYST—— 获取服务器的 操作系统
• Command : OPTS UTF8 on —— 请求设置为 UTF8 编码
• Response : 220—— 对新用户服务 准备好
• Response : 200—— 命令成功
• Response : 331—— 用户名正确,需要密码
• Response : 530—— 用户不能登陆
• Response : 230—— 用户登录成功
• Response : 215—— 系统类型
主要流程:
1.在浏览器中输入FTP地址,如 FTP://192.168.1.154,然后输入用户名和密码,如下
2.抓到的包如下
3.请求用户名命令:USER
4.请求密码命令:PASS
5.回答230,登录成功
三.FTP下载
FTP的下载Response、Command主要值注解:
• Command : CWD—— 改变服务器上的工作目录
• Command : RETR—— 从服务器上找回(复制)文件
• Command : TYPE—— 设置数据交换的类型 {A(SCII),E(BCDIC),I(mage),L( ocal byte size )}
• Command : SIZE 〈FILENAME 〉—— 文件大小,执行成功返回 213 ;
• Command : PASV—— 进入被动模式
• Command : QUIT—— 退出
• Response : 200—— 命令成功
• Response : 213—— 文件 状态
• Response : 257—— 路径名建立
• Response : 550—— 未执行请求的 操作
• Response : 227—— 进入被动 模式
• Response : 125—— 数据连接已打开,准备 传送
• Response : 226—— 关闭数据连接,请求的文件操作 成功
• Response : 221—— 服务关闭控制连接,可以退出 登录
主要流程:
1.抓包
2.主要包有:
3.RETR命令请求下载
4.Response:125——数据连接已打开,准备传送
5.Response:226——关闭数据连接,请求的文件操作成功
6.请求命令QUIT,退出
7.回显221 ,关闭控制连接,参数Goodbye
四.FTP上传
FTP的上传Response、Command主要值注解:
• Command : CWD—— 改变服务器上的工作目录
• Command : STOR—— 储存(复制)文件到服务器上
• Command : NOOP—— 等待,无实际 动作 ,使 服务器返回 OK
• Response : 200—— 命令成功
• Response : 226—— 关闭数据连接,请求的文件操作 成功
• Response : 227—— 进入被动 模式
•Response:530——用户不能登陆
主要流程:
1.上传文件,拖到FTP服务器中
2.抓包
3.STOR命令,请求上传文件
4.Response:125——数据连接已打开,准备传送
5.Response:226——关闭数据连接,请求的文件操作成功
•
五.FTP新建目录
FTP增加目录:
• Command : MKD—— 在服务器上 创建目录
• Command : LIST—— 列出当前目录下所有文件和 子目录
• Command : RNFR—— 指定需要改名的原 文件 .
• Command : RNFO—— 指定 需要改名的新 文件名
• Response : 200—— 命令成功
• Response : 257—— 路径名创建
• Response : 227—— 进入被动 模式
• Response : 226—— 关闭数据连接,请求的文件操作 成功
• Response : 125—— 数据连接已打开,准备 传送
• Response : 350—— 请求 的文件操作需要进一步 命令
• Response : 250—— 请求 的文件操作 完成
主要流程:
1.新建文件夹,并命名为123
2.抓包
3.MKD命令,创建文件夹
4.PATHNAME created 创建目录成功
5.RNFR命令:修改目录名
6.RNTO:回送命令,参数为文件名
7.修改目录名成功
六.FTP删除目录
FTP删除目录
• Command : RMD—— 在服务器上删除指定 目录
• Command : LIST—— 列出当前目录下所有文件和子目录
• Response : 250—— 请求的文件操作完成
• Response : 200—— 命令成功
• Response : 257—— 路径名创建
• Response : 227—— 进入被动模式
• Response : 226—— 关闭数据连接,请求的文件操作成功
• Response : 125—— 数据连接已打开,准备传送
主要流程:
1.在文件管理器中删除目录123
2.抓包
3.删除目录命令RMD,参数123
4.回答250,删除成功