- 这个机子相对简单一点,但是也是从中发现了自己不少问题
- 技能一: nmap 扫描发现了21,22 ,80三个端口,并且ftp服务允许匿名登录,在pub目录下面有writeable权限,这就好办了。我以为这会是一个很好的切入口,没想到结果是在匿名登录后所有除了pwd以外的命令都会导致ftp的连接断开。bug如下:
这里来聊聊ftp协议吧:
- ftp是基于tTCP的应用层协议,不支持UDP.
- 传输时调用两个端口,分别是数据连接和控制连接。21端口总是控制连接端口,但在ftp不同的工作模式下,数据端口是不一样的。
-
-
- 主动方式连接:
-
客户端从一个任意的非特权端口N(N大于1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端
口(N+1)。
针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP: 1. 任何大于1024的端口N 到FTP服务器的21端口。(客户端初始化的连接) 2. FTP服务器的21端口 到大于1024的端口N。 (服务器响应客户端的控制端口) 3. FTP服务器的20端口 到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口) 4. 大于1024端口 到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)
-
-
-
被动方式连接
-
-
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。 当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N 大于 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。
这样做的结果是服务器会开启一个任意的非特权端口(P大于 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
1. 从任何大于1024的端口N 到服务器的21端口(客户端初始化的连接) 2. 服务器的21端口 到任何大于1024的端口N(服务器响应到客户端的控制端口的连接) 3. 从任何大于1024端口N+1 到服务器的大于1024端口X(客户端初始化数据连接到服务器指定的任意端口) (X这个端口是个1025--5000的端口) 4. 服务器的大于1024端口X 到远程的大于1024的端口N+1(服务器发送ACK响应和数据到客户端的数据端口)
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
- 我顺利的停掉了防火墙,结果可以了。以后遇见问题要自己分析,其实用netstat+wireshark+iptables很容易分析出来原因的。
- 技能二: 浏览器的useragent设置
- 具体上网搜索吧,挺简单的。
- 技能二: 浏览器的useragent设置
PREFERENCE: