介绍
XSS 是跨站脚本攻击(Cross Site Scripting)的简写,但是从首写字母命名的方式来看,应该取名 CSS,但这样就和层叠样式(Cascading Style Sheets,CSS)重名了,所以取名为 XSS。
XSS 攻击,一般是指攻击者通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式。
分类
XSS 攻击按是否把攻击数据存进服务器端,攻击行为是否伴随着攻击数据一直存在,可分为 非持久型XSS攻击
和 持久型XSS攻击
。
XSS 攻击按攻击方式又可分为 反射型 XSS
、 DOM 型 XSS
、 存储型 XSS
,其中 反射型 XSS
和 DOM 型 XSS
算是 非持久型 XSS 攻击
,而 存储型 XSS
算是 持久型 XSS 攻击
。
反射型 XSS(Reflected XSS)
原理
攻击者诱导用户访问一个带有恶意代码的 URL
后,服务器端接收数据后处理,然后把带有恶意代码的数据发送到浏览器端,浏览器端解析这段带有 XSS
代码的数据后当做脚本执行,最终完成 XSS 攻击。
因为这个过程就像一次反射,故称为 反射型 XSS
。
攻击步骤
- 攻击构造出特殊的
URL
,其中包含恶意代码。 - 用户被诱导打开带有恶意代码的
URL
,服务器端将恶意代码从URL
中取出当做参数处理,然后返回给用户带有恶意代码的数据。 - 用户浏览器接收到响应解析执行,混在其中的恶意代码也被执行。
- 恶意代码窃取用户敏感数据发送给攻击者,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。