
我在 common-user-management 中发现了一个关键的安全漏洞,这是一个稳健的 Spring Boot 应用程序,提供用于动态控制用户访问的用户管理服务。该漏洞影响 /api/v1/customer/profile-picture 端点,允许攻击者上传未经适当验证的文件,这可能导致远程代码执行(RCE)。
你可以使用以下 Python 脚本来利用此漏洞:
python exploit.py -u "customer_user" -p "your_password" -f "malicious.jsp" -url "https://target.com"
-u:用户名
-p:密码
-f:要上传的恶意文件
-url:目标 URL
端点 /api/v1/customer/profile-picture 存在一个关键的安全漏洞。该端点允许文件上传,且未进行适当的验证或限制,从而使攻击者能够上传恶意文件,进而导致远程代码执行(RCE)。
问题源于对文件扩展名和 Content-Type 头缺乏验证。因此,应用程序允许上传任意文件,包括:
这些文件随后可由 Web 服务器执行,从而使攻击者能够在服务器上执行任意代码,可能危及整个系统。
上传恶意文件: 使用角色包含 26,17 的 customer 用户向 /api/v1/customer/profile-picture 发送 PUT 请求,并附带恶意文件载荷(例如 .jsp、.php、.html)。
获取文件位置: 发送 GET 请求 /api/v1/customer/my-profile,在响应的资料链接中获取文件位置。
执行上传的文件: 使用文件名直接通过响应中返回的 URL 访问该文件。 如果服务器支持上传的文件类型,它将执行该文件,从而导致远程代码执行。