关于SSRF漏洞的关键信息 定义: - Server-Side Request Forgery (SSRF) 是一种漏洞,允许攻击者利用服务器发起任意的网络请求。由于服务器通常具有比外部客户端更广泛的访问权限,这使得攻击者能够访问敏感资源或执行未经授权的操作。 示例场景: - 应用程序有一个从给定URL获取图片的端点,如: - 如果服务器对URL参数不做验证,攻击者可以通过传递内网URL,如: - 通过上述方法,攻击者能访问敏感数据。此外,攻击者还可以利用file://协议访问服务器文件系统,如: 防御措施: - 输入验证和允许列表: 限制服务器API可以使用的URL,例如只允许特定的域名。 - 阻塞协议和URL模式: 仅允许特定的URL模式,如仅允许 协议。 - 重定向验证: 不自动跟随重定向,且对重定向后的URL进行验证。 - 最小权限和隔离: 确保进行外网请求的服务运行在具有最小权限的环境中,避免与敏感内部服务共存。 防御总结检查表: - 审查所有获取资源的功能,确保对用户输入进行验证或允许列表的设定。 - 阻止除HTTPS以外的所有协议。 - 注意URL重定向,限制重定向链。 - 应用最小权限原则,服务器不应拥有不必要的内部网络访问权限。 - 记录和监控请求。