测试用户设置的ftp服务器时阻止SSRF

时间:2018-06-29 17:22:39

标签: ftp ssrf

用户可以输入希望使用我们的服务放置文件的ftp服务器的IP地址,端口,路径,用户名和密码。然后,我们提供一个测试配置按钮,它将尝试登录到指定的FTP服务器。但是,如果黑客访问了从客户端网络中我们设备托管的网页,我们发现他们可以使用FTP测试向非ftp服务器发出请求,并使用协议隧道(通过用户名中的crlf字符)得到一些结果。 ftp协议规定不能仅对任何服务使用此协议,因为我们将在发送用户名之前等待它们请求用户名。但是,如果针对的是贴有横幅的smtp服务器之类的东西,则可以使用它,因为Windows Internet连接功能会出于某种原因将其视为对用户名的请求,即使它具有告知其使用ftp协议的标志也是如此。话虽如此,我们不能从用户名中删除crlf,因为它的编码为%0a%0d,并且是有效的ftp用户名。

是否有防止这种情况的普遍做法?我解决了与LDAP类似的问题,在该问题中,我为初始请求输入了虚拟数据,并且如果LDAP服务器返回了无效的凭据,我将发送真实数据。由于回复确认它确实是LDAP服务器。

如果我可以验证远程服务器是ftp服务器,而无需发送理想的身份验证凭据。

0 个答案:

没有答案