xss

发布时间 2023-04-15 19:45:38作者: 挖洞404

1、定义

xss,cross site script跨站脚本攻击,是在用户的客户端上解析攻击者构造的payload作为脚本执行,从而造成危害。

(1)用户的客户端

  • xss攻击的实际阶段,发生在客户端一侧,而非服务端。当然,攻击过程可能会要求服务端的参与
  • 客户端一般是指浏览器,但广义上包括其他可以解析脚本的程序。(《web前端黑客技术揭秘》钟晨鸣 徐少培 p80有介绍QQ客户端的案例)
  • xss攻击,虽然发生在客户端(即浏览器或类似程序),但其属于对应服务端提供的服务,主要由浏览器厂商和网站开发者负责避免xss的发生。

(2)脚本

  • 主要指的是js脚本,但广义上包括vbscript和actionscript等。一般讨论直接指的是js
  • 被作为脚本执行有两种形式:
    • 一是payload在服务端程序直接嵌入到html的响应中,响应类型为text/html,比如html\php\jsp\aspx。这个过程未经过严格检查,导致payload包含一些字符,破坏了原有的html文档结构,直接被浏览器解析为脚本执行。
    • 二是payload因为各种形式出现在前端,比如地址栏url的路径参数、直接参数或hash,又或者响应包含、本地存储、cookie等。然后响应页面的脚本读取payload,通过eval这类危险函数解析,或者直接作为innerHTML属性的值,payload被间接解析。

(3)危害