ProFTPD是一款开放源代码FTP服务程序。 ProFTPD的用户认证API实现上存在漏洞,远程攻击者可能利用此漏洞绕过认证获取非授权访问。 由于FTP协议请求独立的USER和PASS命令的方式,ProFTPD必须分别查询名为USER用户数据和接收到PASS时该用户的认证情况。 但ProFTPD允许同时存在多个认证模块(如mod_auth_unix、mod_sql、mod_ldap),因此可能导致其中一个认证模块(如mod_auth_unix)提供用户数据而另一个模块(如mod_sql)认证该用户数据。 如果将一个认证模块(如mod_sql)配置为使用不严格的认证策略的话,如: SQLAuthTypes Plaintext mod_sql模块的authenticate处理程序就会使用简单的字符串比较。结合/etc/passwd所提供的用户数据,就可能允许本不应通过认证的用户成功登录。
ProFTPD是一款开放源代码FTP服务程序。 ProFTPD的用户认证API实现上存在漏洞,远程攻击者可能利用此漏洞绕过认证获取非授权访问。 由于FTP协议请求独立的USER和PASS命令的方式,ProFTPD必须分别查询名为USER用户数据和接收到PASS时该用户的认证情况。 但ProFTPD允许同时存在多个认证模块(如mod_auth_unix、mod_sql、mod_ldap),因此可能导致其中一个认证模块(如mod_auth_unix)提供用户数据而另一个模块(如mod_sql)认证该用户数据。 如果将一个认证模块(如mod_sql)配置为使用不严格的认证策略的话,如: SQLAuthTypes Plaintext mod_sql模块的authenticate处理程序就会使用简单的字符串比较。结合/etc/passwd所提供的用户数据,就可能允许本不应通过认证的用户成功登录。