跨站脚本攻击
0x01 XSS漏洞概述
XSS(Cross Site Scripting)跨站脚本攻击,因其与CSS(Cascading Style Sheet)重名,所以更名为XSS。
XSS是指攻击者利用网站未对用户提交的数据进行转义处理或者过滤不足的缺点,添加恶意脚本到Web应用界面中,使其他访问的用户访问该网站时都会执行相应的恶意嵌入代码。XSS作为OWASP TOP 10之一,主要使用Javascript来完成恶意攻击的行为,JS可以非常灵活的操控HTML/CSS浏览器,这就使得XSS的攻击空间非常大,也就是说,JS强大的灵活性为XSS攻击提供了非常广阔的攻击面。
XSS通过将精心构造的脚本代码注入到网页中,并由浏览器解释运行这一段代码以达到恶意攻击的效果。微博、留言板、聊天室等收集用户输入的地方都有可能被注入XSS代码,并存在遭受XSS的风险,只要对用户的输入内容没有做严格的过滤,就会被跨站脚本攻击。用户提交的数据会作为网页的一部分出现。
XSS漏洞的危害
- 从用户提交的数据中盗取各种用户账号
- 盗取用户Cookie资料,冒充用户身份进入网站
- 劫持用户会话执行任意操作
- 刷流量,执行弹窗广告
- 传播病毒(蠕虫病毒)
- 等等
XSS漏洞的验证
使用一段代码来验证XSS漏洞的存在,这样的代码叫做POC(Proof of Concept),代码如下:
alert(/xss/);
confirm('xss');
prompt('xss');
<script>alert(/xss/);</script>
<script>confirm(/xss/);</script>
<script>confirm('xss');</script>
<script>prompt('xss');</script>
<sCr<scrscRiptipt>ipt>OonN'"<>
<!--
<sCr<scrscRiptipt>ipt>OonN\'\"<>
-->
若浏览器页面有弹窗,证明浏览器把用户提交的字符串当作JS来执行,说明XSS漏洞存在。
XSS漏洞的分类
- 反射型XSS
- 存储型XSS</