你知道跨站脚本攻击吗?

1.XSS简介

(1)XSS简介

XSS作为OWASP TOP 10之一。

XSS中文叫做跨站脚本攻击(Cross-site scripting),本名应该缩写为CSS,但是由于CSS(Cascading Style Sheets,层叠样式脚本)重名,所以更名为XSS。XSS(跨站脚本攻击)主要基于javascript(js)来完成恶意的攻击行为。

XSS是一种经常出现在web应用中的计算机大全漏洞,也是web中最主流的攻击方式。那么什么是XSS呢?

XSS是指恶意攻击者利用网站对用户提交的数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。

从而盗取用户资料、利用用户身份进行某种动作或者访问者进行病毒侵害的一种攻击方式。

(2)XSS原理

利用我们所知道的各种黑魔法,向web页面插入js代码,让js代码可以被浏览器执行,访问该页面 的用户则被攻击。

(3)XSS的危害

针对用户 窃取cookie劫持的会话 网络钓鱼 放马挖矿 广告刷流量 针对web服务 劫持后台(常见) 篡改页面 传播蠕虫 内网扫描(常见)

(4)XSS类型

反射型:

反射型也称为非持久型,这种类型的脚本是最常见的,也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中。

存储型:

攻击者将已经构造完成的恶意页面发送给用户,用户访问看似正常的页面后收到攻击,这类XSS通常无法直接在URL中看到恶意代码,具有较强的持久性和隐蔽性。

DOM

DOM型XSS无需和后端交互,而是基于JavaScript上,JS解析URL中恶意参数导致执行JS代码

2.XSS分类详解

(1)反射型XSS

反射型跨站脚本也称作非持久型、参数型跨站脚本、这类型的脚本是最常见的 ,也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中。

一般使用的将构造好的URL发给受害者,是受害者点击触发,而且只执行一次,非持久化。

(2)存储型XSS

存储型XSS:持久性,代码是存储在web服务器中的,比如在个人信息或发表文章等地方插入代码,如果没有过滤或者过滤不严,那么这些代码将存储在服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫、盗窃cookie。每一个访问特定页面的用户,都会受到攻击。

XSS攻击代码存储于web server上;攻击者一般是通过网站的留言、评论、博客、日志等功能(所有能够向web server输入内容的地方),将攻击代码存储到web server上

3.XSS发现与防护

(1)XSS的五种防御方式

HTML节点内容的XSS防御

转义掉<<和>>即转义掉<>即可,转义的时候有两种,一种是写入数据库的时候进行转义,另一种是在解析的时候转义

(2)XSS蠕虫攻击

XSS蠕虫的破坏力和影响力都是巨大的。XSS蠕虫主要发生在用户之间存在交互行为的页面中,当Web应用程序对用户输入的数据信息没有做严格的过滤时,通过结合Ajax的异步提交,就可以实现在植入恶意代码的同时,将恶意代码进行对外发送,即实现了代码的感染和传播,也就形成了XSS蠕虫。

(3)挖掘XSS漏洞

扫描工具自动化检测 AWVS AppScan JSKy 手工测试 源码分析

(4)XSS漏洞的防范

XSS跨站脚本攻击漏洞防范