web安全第八课 什么是XSS

什么是XSS

XSS:Cross site script(跨站脚本)  (缩写应该是css,为了和CSS(层叠样式表)做区分所以叫XSS)

概念:黑客通过“HTML注入”篡改网页,插入恶意脚本,当用户在浏览网页时,实现控制用户浏览器行为的一种共计方式。

常见危害:盗取用户信息、钓鱼、制造蠕虫等,当然也可以盗取用户cookie。

XSS分类

存储型XSS

建议使用Firefox浏览器的firebug插件(目前firefox已经整合来firebug的功能)

触发过程:用户打开浏览器,访问嵌入列XSS脚本的页面,浏览器向web后端应用程序请求页面内容,页面中的留言是存储在数据库中所以需要查询数据库,数据库会返回携带XSS脚本的留言返回给web应用程序,并最终显示在用户浏览器中,触发XSS。

这里有个非常明显的特征,存在XSS脚本的留言是存储在数据库中,是什么时候存在数据库中的呢?黑客恶意构造的,并写入到数据库中。

黑客精心构造XSS恶意脚本,进行留言,提交给web应用程序,并写入到数据库中,其他正常用户或者系统管理员在查看留言时就会触发XSS,

存储型XSS 的关键点在于:XSS的脚本内容是存储在数据库中的

反射型XSS

触发过程:访问携带XSS脚本的链接,触发XSS。

例如:黑客通过聊天方式或者是邮件给发送一个链接,一打开这个链接就触发列XSS。

与存储型XSS不同的是反射型XSS在链接中/URL中可以看到非常明显的XSS特征,例如name = <ing src @ onerror = alert(/XSS)>。

查看源码了解详情,我们也需要借助firebug这个插件。按F12切换到HTML选项卡 ,在搜索栏中输入要搜索的关键字“XSS”。(这个也是图片加载失败,执行了onerror事件触发了XSS。)

攻击过程:

用户在浏览器中访问带有XSS的链接,浏览器向后端应用程序发送请求,后端服务器解析请求输入到响应页面并返回给浏览器,浏览器渲染响应页面触发XSS。

存储型XSS和反射型XSS的区别

存储型:黑客访问页面植入XSS脚本,用户方位页面触发XSS,从数据库中提取XSS内容。

反射型:用户访问带有XSS脚本的链接,直接触发XSS,从URL中提取XSS内容。

DOM

触发过程:用户访问携带XSS脚本的链接,触发XSS(这个过程跟反射型XSS是一样的)

有什么区别呢?用firebug看看吧。

DOM型XSS不是在URL的参数中,而是在URL的哈希中(hash(哈希)“#”号分割符后的内容),URL中的哈希串是不会发送到后端服务器的,那说明向用户输出XSS脚本的不是后端服务器而是前端页面。

打开浏览器firebug,搜索框中输入hash看看:

攻击过程

用户访问携带XSS脚本的链接,浏览器通过JavaScript从URL中提取出XSS的脚本内容并写入到DOM中触发XSS。

Dom型XSS和反射型XSS最大的区别
DOM型XSS:通过前端JavaScript讲XSS脚本写入DOM中触发XSS;
反射型XSS:通过后端应用程序将XSS脚本写入到响应页面中,浏览器渲染响应页面时触发XSS。

对于反射型XSS更为简单的查看方式是:在页面空白处右击,查看源代码。

DOM型XSS是无法通过查看页面源代码找到触发位置的,因为XSS并不是服务器返回的数据,而是浏览器通过JavaScript直接触发的。所以需要通过firebug插件来查看。

XSS类型

存储型

反射型

Dom

触发过程

  1. 黑客构造XSS脚本
  2. 正常用户访问携带XSS脚本的页面

正常用户访问携带XSS脚本的URL

正常用户访问携带XSS脚本的URL

数据存储

数据库

URL

URL

谁来输入

后端web应用程序

后端web应用程序

前段JavaScript

输出位置

HTTP响应中

HTTP响应中

动态构造的dom节点

 

野兔

2019.2.17

转载于:https://my.oschina.net/hare1925/blog/3011135

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值