漏洞关键信息 漏洞类型 存储型跨站脚本(XSS) 漏洞影响版本 InvoicePlane 1.7.0 漏洞描述 在InvoicePlane版本1.7.0的付款发票Logo功能中存在存储型跨站脚本(XSS)漏洞。 漏洞细节 上传发票Logo: 应用程序允许上传svg文件,但没有对上传的内容进行有效验证,导致用户可以上传包含恶意脚本的svg文件。 漏洞利用方式 (PoC) 1. 在系统设置->发票中上传如下SVG文件进行Logo上传。 2. 点击“保存”按钮,随后会得到结果。 3. 右键点击选择“在新标签页中打开图片”,出现警告对话框。 具体操作步骤 漏洞影响 数据暴露和完整性丢失:可以读取/修改用户数据,修改账户设置,添加后门管理员等。 应用程序完整性的妥协。 修复建议 实施正确的输出编码,例如 等,对所有用户控制的数据在呈现到客户端之前进行编码处理。 在服务器端验证和清理输入数据,包括数据长度,数据类型,允许出现的字符等。 使用集中化转义库或安全的模板引擎进行自动转义输出。 强制使用Content-Security-Policy(CSP)政策,用于限制内联脚本的执行,从而限制可信任脚本的来源。