VINADES JSC NukeViet CMS v4.5.07 的 管理员远程上传功能 中存在 服务端请求伪造(SSRF) 漏洞。该问题允许已认证的管理员在上传文件时提供精心构造的远程文件 URL,从而触发指向任意 URL 的服务端 HTTP 请求。
此漏洞可能允许攻击者与内部网络服务交互、扫描内部资源,或访问外部无法直接访问的受限端点。
该漏洞存在于以下组件中:
admin/upload/upload.php
vendor/vinades/nukeviet/Files/Upload.php
受影响的函数包括:
save_urlfile()
check_url()
这些函数处理用户提供的远程文件 URL(fileurl)时,未对出站请求进行充分的验证或限制。
远程上传功能 允许管理员通过 URL 源上传文件。当通过 fileurl 参数提供精心构造的 URL 时,应用程序会向指定目标发起服务端请求。
由于验证不充分,拥有管理员权限的攻击者可滥用此行为,强制应用服务器向任意内部或外部资源发起 HTTP 请求。
此外,应用程序会跟随重定向,从而增加了访问内部资源和进行网络侦察的风险。
已认证的管理员向远程上传端点提交精心构造的 URL。
攻击场景示例:
示例目标:
http://127.0.0.1
http://localhost
http://169.254.169.254
http://192.168.1.1
http://internal-service:8080
这可能导致:
示例构造请求:
POST /admin/index.php?language=en&nv=upload&op=upload HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
Cookie: admin_session=SESSION
fileurl=http://127.0.0.1:8080
服务器会尝试获取所提供的 URL,从而对内部资源发起服务端请求。
成功利用可能允许攻击者:
问题由以下原因导致:
VINADES JSC 应实施以下缓解措施:
127.0.0.0/8
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
169.254.169.254
localhost
http
https
禁用或限制重定向。
实施主机名和 DNS 验证,以防止 SSRF 绕过技术。
尽可能对受信任的远程域名采用允许列表方法。
Pavan V