TIER 0: Fawn
FTP
FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的协议和相应的工具
RFC 959 文档:是定义了 FTP 协议的规范
FTP 使用两个不同的端口 TCP/20 和 TCP/21 进行数据传输和控制连接
- FTP 控制连接使用 TCP/21 端口,控制连接负责处理认证、发送命令、传输目录和文件操作等
- 在主动模式下文件传输会使用到 TCP/20 端口,被动模式使用端口范围 1024-65535,但可以根据服务器配置进行更改。
尽管 FTP 在过去被广泛使用,但随着时间的推移,由于安全性方面的限制,现代网络环境中更常用的是安全的文件传输协议,如 SFTP(SSH File Transfer Protocol)和 FTPS(FTP over SSL/TLS)
部分 FTP 协议规则
FTP 协议使用命令和响应的形式进行通信
通信形式
- 客户端向服务器发送命令请求
- 服务器根据接收到的命令执行相应的操作
- 客户端收到服务器响应
FTP 命令由命令名称和参数组成,以空格分隔。例如,"USER username" 是用于指定用户名的命令。
FTP 响应由三位数字代码和可选的文本消息组成。例如,"220 Welcome to FTP server" 是一个表示服务器准备就绪的响应。
对于具体命令和响应,推荐查看 RFC 959
科普:FTP 协议早于 HTTP 协议
FTP 通信过程
FTP 通信过程包括以下几个步骤:
- 身份验证:客户端可以使用用户名和密码进行身份验证,或者选择匿名身份验证并使用预定义的匿名账号。
- 目录和文件操作:FTP 提供了一系列命令用于在服务器上进行目录和文件的操作。
- 错误处理:FTP 使用响应代码来指示命令的执行状态。
- 数据表示和传输:FTP 支持多种数据表示和传输方式,传统使用 ASCII 模式或二进制模式。
- 结束会话:客户端可以使用
QUIT命令终止会话,或者使用BYE命令。
下面是一个 FTP 通信时序图示例:
participant Client
participant Server
Client->>Server: HELLO
Server-->>Client: 220 Welcome to FTP server
Client->>Server: USER username
Server-->>Client: 331 Password required for username
Client->>Server: PASS password
Server-->>Client: 230 User logged in
Client->>Server: PASV
Server-->>Client: 227 Entering Passive Mode (192,168,0,1,10,12)
Client->>Server: RETR filename
Server-->>Client: 150 Opening data connection for filename
Server-->>Client: (data transfer)
Server-->>Client: 226 Transfer complete
Client->>Server: QUIT
Server-->>Client: 221 Goodbye
在上述时序图中,Client 和 Server 分别表示 FTP 客户端和服务器,通信过程如下:
- 客户端向服务器发送
HELLO消息 - 服务器回复
220 Welcome to FTP server消息 - 客户端发送带有用户名的
USER命令,示例中是 username - 服务器要求输入密码,并发送
331 Password required for username消息 - 客户端发送带有密码的
PASS命令,示例中是 password - 服务器发送
230 User logged in消息,确认登录成功 - 客户端请求服务器进入被动模式,使用
PASV命令 - 服务器回复
Entering Passive Mode消息,提供数据连接的IP地址和端口 - 客户端使用
RETR命令请求服务器检索文件 - 服务器确认请求,并发送
150 Opening data connection消息开始数据传输 - 服务器将文件数据传输给客户端
- 传输完成后,服务器发送
226 Transfer complete消息 - 客户端发送
QUIT命令以终止会话,或者BYE命令 - 服务器回复
221 Goodbye消息,确认终止
匿名访问 FTP
在 FTP 上进行无账户登录时,可以使用用户名 "anonymous" 或 "ftp"(取决于服务器的配置)
匿名FTP的目的是为了提供对服务器上某些文件或目录的公共访问。但是,匿名用户所获得的访问级别和权限可能因服务器配置而异。有些服务器可能只提供只读访问,而其他服务器可能允许上传文件甚至执行某些命令。
Fawn 最终的 flag 就是通过匿名访问 FTP 获得的,使用 GET 命令下载文件即可。
TIER 0: Fawn的更多相关文章
- Hack The Box( Starting Point )
Hack The Box [Starting Point] 初始点 -- 了解渗透测试的基础知识. 这一章节对于一个渗透小白来说,可以快速的成长.以下将提供详细的解题思路,与实操步骤. TIER 0 ...
- 2000条你应知的WPF小姿势 基础篇<1-7>
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...
- Windows Live Write 日志客户端
下载地址 下载地址:http://wl.dlservice.microsoft.com/download/E/4/9/E494934D-C33E-486A-AB1A-82248C800922/zh-c ...
- ssd可以用作redo 盘吗?
ssd可以用作redo 盘吗? 1.ssd有写磨损,而且ssd的写性能也不是非常好,ssd只是随机读特别好,因为 ...
- [No0000129]WPF(1/7)开始教程[译]
概要 在我使用了半年多 WPF 后,是时候写点关于 WPF 基础方面的东西了.我发表了一系列针对具体问题的文章.现在是到了让大家明白为什么说WPF是一款在界面开发上带来革命的产品了. 本文针对初级-中 ...
- OpenStack_Swift源代码分析——Ring的rebalance算法源代码具体分析
1 Command类中的rebalnace方法 在上篇文章中解说了,创建Ring已经为Ring加入设备.在加入设备后须要对Ring进行平衡,平衡 swift-ring-builder object.b ...
- 利用 PGO 提升 .NET 程序性能
引子 .NET 6 开始初步引入 PGO.PGO 即 Profile Guided Optimization,通过收集运行时信息来指导 JIT 如何优化代码,相比以前没有 PGO 时可以做更多以前难以 ...
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
- ZAM 3D 制作3D动画字幕 用于Xaml导出
原地址-> http://www.cnblogs.com/yk250/p/5662788.html 介绍:对经常使用Blend做动画的人来说,ZAM 3D 也很好上手,专业制作3D素材的XAML ...
- 微信小程序省市区选择器对接数据库
前言,小程序本身是带有地区选着器的(网站:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html),由于自己开发的程序的数据是很 ...
随机推荐
- winform——windows 服务的安装 卸载 启动 停止
安装服务和卸载服务采用process启动命令行的方式.启动服务和停止服务用到了 System.ServiceProcess.ServiceController这个类. 程序是这样运行的,首先启动服 ...
- Vue cli使用Element UI
当前的测试环境如下: ---- 新版的@vue/cli ---- Vue2.x版本 第一步:安装Element UI npm i element-ui -S 第二步:引入Element UI 在mai ...
- 任务Task系列之使用CancellationToken取消Task
本文参考书籍<CLR via C#> Task的取消采用一种形如令牌(Token)的方式.首先先构建一个CancellationTokenSource实例,然后任务中执行的方法必须能接受一 ...
- WPF中 x:Name和Name的区别
x:Name 唯一地标识 XAML 定义的对象,以便于从代码隐藏或通用代码中访问对象图中实例化的对象.x:Name 一旦应用于支持编程模型,便可被视为与由构造函数返回的用于保存对象引用或实例的变量等效 ...
- 7.12考试总结(NOIP模拟12)[简单的区间·简单的玄学·简单的填数]
即使想放弃,也没法放弃最想要的东西,这就是人 前言 这次应该是和 SDFZ 一起打的第一场比赛吧. 然而我还是 FW 一个... 这次考试也有不少遗憾,主要的问题是码力不足,不敢去直面正解,思考程度不 ...
- 『手撕Vue-CLI』下载指定模板
开篇 经上篇文章的介绍,实现了获取下载目录地址,接下来实现下载指定模板的功能. 背景 通过很多章节过后,已经可以拿到模板名称,模板版本号,下载目录地址,这些信息都是为了下载指定模板做准备的. 实现 如 ...
- 「C++」论高精度
大家好,我是Charzie.在编程领域,高精度计算是一个常见的问题.当标准的整型或浮点型无法满足我们的计算需求时,高精度计算就显得尤为重要.在C++中,虽然标准库没有直接提供高精度数据类型,但我们可以 ...
- vue过滤器 - filters
在数据被渲染之前,可以对其进行进一步处理,比如将字符截取或者将小写统一转换为大写等等,过滤器本身就是一个方法. 过滤器可以定义全局或局部 # 全局 // 回调函数中的参数1永久是绑定的数据 Vue.f ...
- 不好分类的好题Record
这里装的是一些不太好分类的. problem 1 给你 \(n\) 个序列,第 \(i\) 个序列的长度为 \(m_i\),要求在每个序列中选择一个数,每种选法的代价为选择的 \(n\) 个数之和,请 ...
- 将手机声音通过蓝牙输入到WIN10电脑-安卓手机投屏直播无声音
安卓手机投屏无声音,斗鱼,虎牙,直播无声音.可以用本方案,前提是电脑要有蓝牙功能,没有蓝牙,可以购买一个USB蓝牙适配器(不建义买CSR芯片的,CSR驱动会导致office 和远程桌面有问题). 操作 ...