跨站脚本攻击 - 其他场景
  其他场景:包含模版引擎解析问题、文件上传特殊文件类型、第三方依赖问题(供应链安全)、特殊场景XSS...

漏洞场景:模版引擎解析问题

  • th:html
  • th:text
tips
th:text用于展示纯文本,会对特殊字符进行转义
th:utext则不进行转义,直接展示原始HTML内容
当获取后端传来的参数中带有HTML标签时,th:text不会解析这些标签,而th:utext 会解析并渲染它们。这类似于Vue中的v-text和v-html
测试结果

缺陷代码

漏洞场景:文件上传导致存储XSS

  • HTML
  • SVG
  • PDF
  • XML

只能上传HTML类型文件哦

只能上传SVG类型文件哦

只能上传PDF类型文件哦

只能上传XML类型文件哦

tips
除了文件上传导致存储XSS,xml场景下还需要后端进行xml解析
这里PDF型XSS实际是没有危害的,考虑到合规监管问题,还是放上去了
PS:除此之外,还有flash等漏洞场景,后续会补充
                                            
测试结果

                                        

缺陷代码

漏洞场景:第三方组件导致XSS-供应链安全 流量分析

  • jQuery
  • Swagger-UI
  • Ueditor

jQuery在版本[1.2,3.5.0)范围内存在多个XSS漏洞 eg:CVE-2020-11022/CVE-2020-11023

Swagger-ui在版本内[3.14.1,3.38.0)范围内存在XSS漏洞

考虑到样式冲突问题,将Ueditor编辑器单独隔离出来

tips
为什么要单独抽出来呢?
  这里的XSS场景可以看出是由第三方组件导致的,也就引出了所谓的供应链安全(当然不止这些)
风险识别与修复方案?
  一般企业在DevOps流水线中会嵌入相关安全扫描环境(SCA、SAST、IAST……)进行应用安全扫描
  针对供应链安全,可使用专门的SCA工具进行软件成分扫描,升级到修复版本或采用非升级修复方案

缺陷代码

漏洞场景:HTML5特性XSS

  • WebSocket XSS
  • PostMessage XSS
tips
1. WebSocket XSS
   - WebSocket通信不受同源策略限制,可以连接到任意域名的WebSocket服务器
   - WebSocket消息内容可能包含恶意代码,如果直接插入DOM会导致XSS
   - 缺乏消息验证和过滤机制,攻击者可以发送任意内容
2. PostMessage XSS
   - postMessage跨域通信可能被滥用,特别是targetOrigin设置为*时
   - 接收方没有正确验证消息来源,可能处理恶意消息
   - 消息内容可能包含恶意代码,如果直接插入DOM会导致XSS
   - 窗口间通信可能被劫持,导致信息泄露
测试结果

缺陷代码