初识XSS

来源:互联网 发布:电路图制作软件cad 编辑:程序博客网 时间:2024/06/13 10:47

XSS即跨站脚本攻击,名称来历不多说可以百度~

#认识XSS

既然是“攻击”,先让我们来看一下最简单的攻击例子,假设我们的jsp页面中有下面的这行代码,${var}是用户传入的,我们在后台直接将它绑定到页面输出。

<div>${var}</div>
假设用户输入的值是:<script>alert(1)</script>,那么最终jsp返回时页面就变成了下面这样

<div>     <script>alert(1)</script></div>
直接就会弹出alert框了,这样就完成了一次XSS。


#基本原理和目的

基本原理:通过让被攻击用户的浏览器执行恶意脚本来达到窃取、破坏等目的。XSS总是在浏览器中发生。

 具体实施攻击时一般通过闭合标签或闭合引号来实现攻击的目的。

目的:窃取cookie,键盘监听,构造Get/POST请求,xss钓鱼(发挥想象力,XSS的攻击威力巨大),识别浏览器和安装的软件等等。其实一切攻击的目的简单点来说就两个:偷盗,破坏


#分类和攻击方式

XSS可以分为三种主要类型:Reflected(反射型),Stored(存储型), DOM BasedXSS

(1)Reflected(反射型)

恶意脚本来自普通用户请求。

攻击方式:一般要求攻击者诱使用户点击一个包含XSS代码的URL链接来完成攻击。所以不要随便点陌生人发的链接啦

(2)Stored(存储型)

恶意脚本来自于站点数据库

攻击方式:只需要用户查看一个正常的URL链接即可,比如发了一个带有非法请求的帖子,又或者把脚本注入到了数据库的某个字段中。存储型XSS可能会被发起XSSWorm,存储型的风险高于反射型

所以不要以为来自自家系统数据库的内容就全是安全的!

(3)DOM Based XSS

Dom Based XSS 实际上前两者的变种,可以认为其是从代码注入地点这个维度对XSS进行分类。(没有必要进行严格意义上的界定,实际上恶意攻击一般都是结合多种方式)  

Reflected/Stored本质上是server端注入问题,而DomBased XSS是client端注入问题.它是客户端js操作DOM时发生的。   






0 0