Bootstrap跨站脚本漏洞CVE-2019-8331利用分析
漏洞概述
CVE ID: CVE-2019-8331
受影响版本:
- Bootstrap 3.4.1之前版本
- Bootstrap 4.x在4.3.1之前版本
CVSS评分: 6.1
受影响的组件
tooltip(工具提示)popover(弹出框)
易受攻击的属性:
data-templatedata-contenttitle(如果启用了HTML)
漏洞原理
Bootstrap的Tooltip和Popover组件允许开发者通过data-template属性指定自定义HTML模板。
在修复版本之前,模板HTML没有经过适当的清理,攻击者可以在模板中注入恶意JavaScript代码。
示例攻击代码:
|
|
当工具提示被渲染时,Bootstrap会将恶意HTML插入到DOM中,从而执行<script>标签。
修复版本
- Bootstrap 3.4.1
- Bootstrap 4.3.1
这些版本引入了适当的清理机制,使用Bootstrap内置的清理器(或通过转义不受信任的输入)来处理工具提示和弹出框模板。
缓解措施
1. 升级Bootstrap
|
|
2. 禁用HTML内容(除非必要)
|
|
3. 启用清理功能(Bootstrap 4.3.1+)
|
|
4. 永远不要将不受信任的数据注入到以下属性中:
data-templatedata-contenttitle
安全实现示例
|
|