Anonymous Intelligence Signal

Semgrep 扫描发现 SSRF 漏洞:用户输入 $name 直接流入 curl_init() 函数

human The Lab unverified 2026-04-20 13:22:56 Source: GitHub Issues

Semgrep 安全扫描工具在一段 PHP 代码中检测到一处严重的服务器端请求伪造(SSRF)漏洞。核心风险在于,用户完全可控的输入变量 `$name` 未经任何验证或净化,便直接传递给了 `curl_init()` 函数。这使得攻击者能够操纵服务器向内部网络服务或任意外部主机发起 HTTP 请求,从而可能访问或攻击本应隔离的后端系统、元数据服务或内部 API。

该漏洞的具体位置位于 `example-codes/index10.php` 文件的第 13 行。代码片段 `curl_init($name);` 清晰地展示了攻击面:应用程序直接使用来自用户的 `$name` 参数来初始化 cURL 会话。由于缺乏对 `$name` 值的白名单验证、URL 解析或目标地址限制,恶意用户可以将其设置为指向 `127.0.0.1`、`169.254.169.254`(云元数据端点)或任何其他内部网络地址的 URL。

此类 SSRF 漏洞是 Web 应用程序中常见的高危缺陷,可能导致敏感信息泄露、内部服务枚举,甚至作为跳板发起进一步的内部网络攻击。对于使用类似模式处理用户输入以获取远程资源的应用程序,此发现是一个明确的警示,必须实施严格的输入验证和出站请求目标限制。