CVE-2023-7321CVE-2023-7321是发现于Nagios Log Server的一个存储型跨站脚本(XSS)漏洞。该漏洞存在于Snapshots页面,由于应用程序未对日志内容进行安全编码,导致攻击者可以在日志中注入恶意脚本代码。当其他用户访问受污染的Snapshots页面时,这些恶意脚本将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取或对应用程序进行进一步攻击。由于漏洞利用需要用户交互(访问Snapshots页面),且攻击者需要具备在日志中注入恶意内容的低权限,因此CVSS评分为5.4(中危)。攻击者可利用此漏洞在受害者浏览器中执行任意JavaScript代码,窃取会话Cookie、伪造用户操作或传播恶意内容。
该漏洞的根本原因在于Nagios Log Server的Snapshots页面在渲染日志内容时未实施充分的输出编码。具体而言,当用户提交或导入包含恶意JavaScript代码的日志数据时,系统直接将用户输入存储到数据库中,而在后续展示Snapshots页面时,这些未经过滤的数据被直接插入到HTML响应中。攻击者可以通过以下方式利用此漏洞:1. 使用低权限账户登录Nagios Log Server;2. 在日志数据中注入恶意脚本,如<script>alert(document.cookie)</script>;3. 当具有更高权限的用户访问Snapshots页面查看日志时,恶意脚本将在其浏览器上下文中执行。由于该漏洞位于应用程序的输出上下文,未使用HTML实体编码或内容安全策略(CSP)来防护,因此攻击者可以成功执行跨站脚本攻击。修复方案包括对所有用户输入进行验证,并在输出时使用适当的编码方法,如HTML实体编码或使用现代前端框架的安全渲染机制。