一.原理
XSS跨站脚本攻击原称CSS,但为了与层叠样式表CSS区分所以称为XSS。主要是指攻击者在web页面插入恶意的script代码,当用户浏览该页面之时,嵌入其中的script代码会被执行,然后获取用户cookie、或者用户在网页中其他的高级权限以及其他隐私,从而达到恶意攻击用户的目的。
主要产生于前端的JavaScript代码中。
常见的容易产生XSS跨站攻击漏洞的参数有:
print、print_r、echo、printf、sprintf、die、var_dump、var_export
二.分类
XSS跨站脚本攻击主要分为反射型、存储型、DOM树型三种、
1.反射型(非持久型)
原理:
通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行。
其特点往往具有一次性,代码被触发以后就执行,但执行完一次即作废。是当前最常见的XSS攻击。
存在方式:
反射型XSS跨站脚本攻击主要存在于邮件、提交表单、链接等地方。当攻击者将包含有恶意攻击语句的链接发送给目标用户后,用户触发后服务器将含有恶意代码的链接解析并执行用户请求。就会触发该漏洞,使用户遭受恶意攻击。
payload:触发弹窗
<script>alert('1')</script>
2.存储型(持久性)
原理:
存储型与反射型的差别就是,存储型XSS通过拼接正常的JS语句使攻击脚本植入数据库,攻击者将XSS代码发送给了后端,而后端没有对这些代码做处理直接存储在数据库中。当用户访问网站时,又直接从数据库调用出来传给前端,前端解析XSS代码就造成了XSS攻击。
存在方式:
存储型XSS攻击经常出现在博客和留言板中,攻击者