1、介绍
xss,cross site script跨站脚本攻击,是指攻击者构造payload,使其在用户的浏览器上解析为脚本执行,从而造成危害。
- 脚本一般是指js,但广义上vbscript和actionscript(flash)等其它脚本可以造成xss。
- xss一般发生在浏览器,但广义上任何支持脚本解析的应用都有可能造成xss。
- 危害是由脚本执行造成的,想要实现什么样的效果就需要构造对应的脚本,但注意脚本相对于一般编程语言来说,存在一定的不足,比如无法读写本地文件。
2、构造payload与执行
从payload的角度理解,xss实际是攻击者可以控制目标域下的某数据,在用户的浏览器上实现js执行场景。
2.1 js执行场景
参考js的基础知识。大致可以分为两类:
- payload直接嵌入html文档中,作为元素、属性、事件或js代码,然后浏览器直接解析为脚本执行
- 浏览器基于响应中的js去读取payload,间接解析为脚本执行
- payload在响应之前,保存到了浏览器的地址栏、cookie等数据中
- payload在响应中,作为任意数据,包括js变量、注释、元素文本
- payload在响应之后,再进行请求获取
2.2 传递
(1)攻击者构造包含payload的url,其直接指向目标域,基于聊天工具、网站通信、邮件等传递给用户,诱使其点击
(2)攻击者控制第三方网站,用户访问时被迫向目标域跳转
- 请求方法可以是GET或POST
- 请求可以是直接基于url跳转,或者表单请求。不能是ajax
- payload可以在url中,也可以在请求体部中
(3)攻击者访问目标域,将payload存储,为公开数据。然后用户访问该数据
3、分类
网络上,一般将xss分为三类,实际可以看作是以上js执行场景和传递方式的组合
- 反射型,payload在请求中包含,然后在响应中返回
- 存储型,payload保存到服务端,然和其它用户访问
- dom型,payload以js加载的形式解析为脚本
4、漏洞防护
html实体编码
标签:脚本,web,浏览器,xss,js,漏洞,攻击者,payload From: https://www.cnblogs.com/wd404/p/17777592.html