您的位置:首页 > 其它

初识XSS

2016-09-30 22:19 127 查看
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 Based
XSS
(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时发生的。   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息