5月27日 21:37

常见 XSS Payload 有哪些?

常见 XSS Payload 有哪些?

XSS Payload 是注入页面后可在浏览器执行的恶意代码片段,面试常考按攻击目的分类和绕过手法。

答案

Cookie/会话窃取——document.cookie 读取会话信息外发。防护:Cookie 设 HttpOnly

页面篡改与钓鱼——修改 DOM 或注入伪造登录框。防护:输入做 HTML 实体编码后再渲染。

键盘记录——监听 keydown 回传按键。防护:CSP 的 connect-src 限制外发目标。

CSRF 辅助——JS 能读 CSRF Token 构造合法请求,XSS 场景下 CSRF Token 无效。

绕过手法

  • 大小写混写<ScRiPt> 绕过小写匹配
  • 编码变形:HTML 实体、URL 编码、JS Unicode 让关键字变形
  • 事件处理器<img onerror><svg onload><script> 被过滤后仍可触发
  • 符号替换/ 替代空格,反引号替代引号

防护优先级

  1. 输出编码——渲染前 HTML 转义
  2. CSP——script-src 'nonce-xxx',nonce 优于 unsafe-inline
  3. HttpOnly Cookie——防 JS 读取
  4. 白名单校验——拒绝危险字符而非过滤

追问

  • unsafe-evalunsafe-inline 风险?——分别允许 eval 和内联脚本,削弱 CSP
  • DOM 型与反射型 XSS 区别?——前者纯客户端 DOM 操作,后者服务端回显输入
  • 富文本如何防 XSS?——用 DOMPurify 白名单,而非黑名单过滤
标签:XSS