抓包来看ftp状态码
1.quit退出
客户端输入退出命令:
退出的抓包数据交换过程:
2.用户登录,输入正确用户名和错误用户名都是返回331请求输入密码,这里不再将错误用户名的抓包数据交换过程截图。
数据交换过程:
服务器端准备好的数据格式(状态码 消息):
客户端发送用户名格式(USER 用户名):
服务器端返回请求输入密码格式(状态码 消息):
客户端发送密码格式(PASS 密码):
服务器端返回正确登录消息(状态码 消息):
如果登录失败后在ftp> 下输入open dstip,user xxx的数据交换格式同上。
open dstip就相当于发起一个新的连接。
user xxx就相当于发送USER xxx,然后会要求输入密码。
3、目录检索,真实的ftp传输是有控制通道和数据通道的:
输入命令:
客户端发送命令请求:
服务器端相应命令请求状态:
服务器端相应结果:
服务端响应数据发送完毕:
如果用户未登录,服务器端会请求客户端输入用户密码:
4、目录切换
如果客户端未登录,则服务器端会请求客户端输入用户密码:
用户已经登录的状态:
目录切换成功:
目录切换失败:
5、打印当前目录:
6.文件下载
基本数据交换过程都一样:
1)客户端请求端口
2)服务器回应端口可用
3)客户端请求命令
4)服务器回应文件状态和文件大小
5)服务器开始发送文件内容
6)服务器发送文件发送完毕状态
若服务器读取文件失败时,服务器会响应错误消息:
7.文件上传:
若服务器无法写文件,服务器会响应失败消息:
正常的文件上传过程:
1)客户端请求端口
2)服务器回应端口可用
3)客户端请求命令
4)服务器回应可以发送了
5)客户端发送文件内容
6)服务器发送文件发送完毕状态