XSS攻击笔记

1、什么是XSS攻击?

XSS全称(Cross Site Scripting)跨站脚本攻击,是最常见的Web应用程序安全漏洞之一,位于OWASP top 10 2013年度第三名,XSS是指攻击者在网页中嵌入客户端脚本,通常是JavaScript编写的危险代码,当用户使用浏览器浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的

2、XSS攻击原理?

用户提交的数据没有过滤或者过滤不严格,使得攻击者可以构造可执行JS恶意代码输出到网页中 ,可以获得各种敏感信息,或是修改网页内容。

3、XSS攻击的分类

(1) 反射型XSS:
反射型XSS又称为非持久型XSS。XSS代码出现在URL参数中,浏览器发出请求时,参数值作为输入提交到服务器,服务器解后参数值出现在响应的HTML中,最后浏览器解析执行了这段XSS代码
(2) 存储型XSS(危害最大):
存储型XSS,又称持久型XSS,他和反射型XSS最大的不同就是,攻击脚本将被永久地存放在目标服务器的数据库或文件中
(3) DOM XSS:
DOM XSS与反射型XSS和存储型XSS的差别是在于DOM XSS的代码不需要服务器解析响应的直接参与,触发XSS靠的是浏览器DOM解析器的解析,可以完全认为是客户端的事情。

**:需要关闭标签/如果<script>标签被过滤可以使用其他标签**
<img src=1 onerror=alert(1)>/ <a href="javascript:alert(1)">aa</a>/
<div onclick=alert(1)>on</div>

(4) Flash XSS:
利用的是网页上flash文件缺陷来执行js脚本,一般是反射型xss

4、XSS攻击的危害

(1)窃取管理员帐号或Cookie,入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。
(2)窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作。
(3)网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。
(4)发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用。

5、XSS攻击的利用

(1)反射型XSS利用过程:

 a) 恶意的攻击者发给受害者一个链接(链接中携带xss代码)
 b) 攻击者诱使受害者点开这个链接
 c) XSS代码被提交到有XSS漏洞的Web应用程序上
 d) WEB应用程序没有过滤提交上来的数据,或者过滤不严格。
 e) WEB应用程序输出用户提交上来的数据(包含XSS代码)。
 f) 用户浏览器返回的HTML页面,执行返回的JavaScript代码
 g) 恶意的javascript代码在后台悄悄执行,获取用户信息

(2) 存储型XSS利用过程

 a) 恶意的攻击者向存在XSS漏洞的网站提交一段XSS代码
 b) Web应用程序接受提交数据,没有过滤或者过滤不严格
 c) 写入到数据库中
 d) 受害者访问这个存在XSS恶意代码的页面时
 e) Web应用程序从数据库读取之前恶意攻击者提交的数据
 f) Web应用服务器返回这段数据
 g) 受害者浏览器返回的HTML页面,执行返回的JavaScript代码
 h) 恶意的javascript代码在后台悄悄执行,获取用户信息

6、XSS攻击的防御

(1) 对XSS的防御需要根据实际情况对用户的输入进行严格的过滤。基于过滤的XSS防御方式通常可分为两种:基于黑名单的过滤和基于白名单的过滤。后者的防御效果往往更好,对于用户在白名单之外的输入,可以直接忽略。在构造白名单的过程中需要保证在不影响用户体验的同时,尽可能杜绝一切不必要的输入内容
(2) 在cookie中加入httponly属性可以在一定程度上保护用户的cookie,减少出现XSS时损失
(3) Flash XSS的修复需要对相应的flash进行修改或升级替换。

7、XSS可以插在哪里

  用户输入作为script标签内容
  用户输入作为HTML注释内容
  用户输入作为HTML标签的属性名
  用户输入作为HTML标签的属性值
  用户输入作为HTML标签的名字
  直接插入到CSS里
  最重要的是,千万不要引入任何不可信的第三方JavaScript到页面里
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值