`
xmong
  • 浏览: 263457 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

XSS跨站攻击

阅读更多
XSS跨站攻击


目录
1 XSS跨站攻击简介 1
1.1 什么是XSS 1
1.2 XSS的分类 1
1.3 XSS的危害 1
2 XSS的攻击原理 1
2.1 本地式漏洞攻击 1
2.2 存储式漏洞攻击 2
2.3 反射式漏洞攻击 2
3 XSS的防御策略 3
3.1 过滤特殊字符或敏感字段 3
3.2 对敏感数据进行加密  4



1 XSS跨站攻击简介
1.1 什么是XSS
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。

1.2 XSS的分类
一类是来自内部的攻击,主要指的是利用网页自身的漏洞,将恶意脚本注入到网页,当用户访问此页面时,恶意脚本也会跟着执行,这样恶意脚本就能利用到用户的所有状态数据执行恶意操作,比如发微博、私信等(新浪微博的XSS攻击就是此类)。
另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,攻击网站漏洞。

1.3 XSS的危害
• 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
• 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
• 盗取企业重要的具有商业价值的资料
• 非法转账电子邮件
• 强制发送网站挂马
• 控制受害者机器向其它网站发起攻击

2 XSS的攻击原理
XSS攻击原理是利用web应用的漏洞进行攻击的。这些漏洞攻击可归类为三种:本地式漏洞攻击,存储式漏洞攻击,反射式漏洞攻击。

2.1 本地式漏洞攻击
这种漏洞存在于页面中客户端脚本自身。
攻击工程:
A(攻击者)给B(被攻击者)发送一个恶意构造了Web的URL。
B点击并查看了这个URL。
恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在B电脑上。
具有漏洞的HTML页面包含了在B电脑本地域执行的JavaScript。
A的恶意脚本可以在B的电脑上执行B所持有的权限下的命令。

2.2 存储式漏洞攻击
该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
攻击过程:
C拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。
A注意到C的站点具有存储式漏洞。
A发布一个热点信息,吸引其它用户纷纷阅读,该热点信息中潜藏着一段XSS攻击代码。
C或者是任何的其他人B浏览该信息,其会话cookies或者其它信息将被A盗走或攻击。

2.3 反射式漏洞攻击
类似存储式漏洞,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能注入到动态页面中。
攻击过程:
B经常浏览某个网站C。B使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)在网站A中。
A发现C站点包含反射性的XSS漏洞,编写一利用漏洞的URL,并将其冒充为来自C的邮件给B。
B在登录到C的站点后,浏览A供的URL。
嵌入到URL中的恶意脚本在B的浏览器中执行,然后在B完全不知情的情况下将这些信息发送到A的Web站点。

3 XSS的防御策略

3.1 过滤特殊字符或敏感字段
XSS攻击也是利用了Web页面的编写疏忽,所以有一种方法就是从Web应用开发的角度来避免。
(1) 对输入数据进行验证与过滤:
用户在界面输入数据时,可以通过js对提交数据进行验证和过滤,但这层验证防御很弱,很容易让攻击者攻破。除了在界面前端验证过滤外,我们还可以通过后台对页面提交过滤的数据进行验证和过滤。严格的验证可以让web应用将可攻击漏洞降到最小,同时也可以保证信息的安全性和系统正确性。
如:可以对用户输入<script>,<img>,<iframe>,http,src等敏感信息进行过滤。可以对数据格式进行验证,比如邮箱输入,必须满足一定的邮箱格式。
(2) 对输出数据进行过滤:
Web应用在将数据展现给用户的时候,特别是那些由用户输入的数据在输出时必须进行过滤后在展现给用户界面。
如:在jsp页面动态展现后台数据输出信息是,可以使用:
<c:out value=”${xxx}”/>
输出数据信息,这样out标签会对数据进行相应的过滤处理,即使数据中包含有攻击性脚本代码,也会过滤为文本的形式展现出来。

3.2 对敏感数据进行加密
这里所说的敏感数据,就是关系到系统安全的数据,系统中重中之重的数据。
Web应用中往往最敏感的数据信息就是用户信息(用户名,密码),对这些敏感信息的使用和存储都要谨慎小心,因为web应用系统的根本就是用户,一旦用户信息被攻击,可以想象整个web系统会遭受怎样的攻击和破坏。
(1) web系统中对敏感数据加密存储:
在web系统中对敏感数据的常用存储就三种:一种是后台存储,如数据库存储。一种是前端存储,如cookie存储。一种内存存储,如session。不管是那种存储都必须对安全数据进行加密存储。
如数据库存储用户密码必须使用加密存储,最好是使用不可破解不可逆的算法加密,如md5(当然MD5也可以通过穷举法来破解,我们可以在md5基础上加上特别的算法来加密);
如cookie存储,如果用cookie来存储敏感信息,最好是不要存储实质性的敏感信息,而存储一个加密的token信息,根据前端页面传过来的token信息在后台代码中匹配验证或获取相对应的信息。

参见:cookie使用安全 http://xmong.iteye.com/blog/1566102

如session存储,对于这种内存中存储的信息,要遵循,作用域最小化,能清则清。用户信息如果能在request中使用的,就最好不要再session中使用。一是信息常驻内存,二存储作用域扩大不够安全。session中存储用户信息最好不要连带用户特敏感信息,如用户密码,能清则清。
(2) web系统中要安全使用敏感数据:
web系统中要安全使用敏感数据,对这些数据的使用访问要有相应的权限控制和验证,同时通信的过程中也要注意通信安全,如加密,采用SSL通道等


***************************

未完待续






分享到:
评论
1 楼 xly1981 2013-07-08  
能像CSRF攻击一样带个图就更棒了

相关推荐

    XSS跨站攻击课程.pdf

    ### XSS跨站攻击课程知识点详解 #### 一、XSS基本原理 - **定义**:XSS(Cross-Site Scripting)即跨站脚本攻击,是指攻击者利用网站漏洞,将恶意脚本代码注入到网页中,当其他用户浏览这些网页时,就会在用户的...

    开发代码安全规范防SQL注入和XSS跨站攻击代码编写规范样本.doc

    开发代码安全规范防SQL注入和XSS跨站攻击代码编写规范样本 随着技术的高速发展,Web应用被广泛使用,但同时也伴随着各种安全隐患。为了提高编程人员的安全意识和安全编程经验,本规范提供了防止SQL注入和XSS跨站...

    开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范.doc

    "开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范" 随着技术的高速发展,Web应用被广泛使用,伴随而来的各种安全隐患也日益增加。其中,SQL注入和XSS跨站攻击是两个最为常见的安全漏洞类型。为了防止这些漏洞...

    XSS跨站攻击,注入代码整理,大全

    ### XSS跨站攻击详解与注入代码实例 #### 一、XSS概述 XSS(Cross Site Scripting)即跨站脚本攻击,是一种常见的Web安全漏洞。它通过将恶意脚本注入到看似可信的网站中,进而攻击最终用户。XSS攻击主要分为三种...

    开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范.pdf

    【开发代码安全规范-防SQL注入和XSS跨站攻击】是针对互联网应用程序开发中的重要安全问题,旨在提升开发人员的安全编程意识,防止恶意攻击对系统和数据的破坏。SQL注入和XSS跨站脚本攻击是两种常见的网络安全威胁。 ...

    XSS跨站脚本攻击剖析与防御.pdf

    XSS跨站脚本攻击剖析与防御》是一本专门剖析XSS安全的专业书,总共8章,主要包括的内容如下。第1章 XSS初探,主要阐述了XSS的基础知识,包括XSS的攻击原理和危害。第2章 XSS利用方式,就当前比较流行的XSS利用方式做...

    开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范.docx

    开发代码安全规范旨在确保软件开发过程中对SQL注入和XSS跨站攻击的防范,这是互联网应用开发中的两个重要安全问题。以下是对这两个安全威胁的详细解释以及对应的代码编写规范: **SQL注入** 是一种常见的攻击手段,...

    XSS跨站脚本攻击剖析与防御

    XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的网络安全漏洞,它允许攻击者在用户浏览器上执行恶意脚本。这种攻击通常发生在Web应用中,当网站未能正确地过滤或转义用户输入的数据,使得这些数据可以作为可...

    XSS跨站总结

    #### 一、XSS跨站攻击概述 XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的Web应用程序安全漏洞,它允许攻击者通过注入恶意脚本来攻击用户。这种攻击通常发生在用户浏览器上,利用的是用户对目标网站的信任...

    xss 跨站攻击代码

    跨站攻击过滤代码

    Laravel5中防止XSS跨站攻击的方法

    本文实例讲述了Laravel5中防止XSS跨站攻击的方法。分享给大家供大家参考,具体如下: Laravel 5本身没有这个能力来防止xss跨站攻击了,但是这它可以使用Purifier 扩展包集成 HTMLPurifier 防止 XSS 跨站攻击。 1、...

    XSS跨站脚本攻击漏洞修复方法

    **XSS跨站脚本攻击漏洞修复方法** XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的网络安全威胁,它允许攻击者在用户的浏览器上执行恶意代码,从而窃取用户敏感信息、操纵用户行为或者对网站进行破坏。本文将...

    修复swfupload2.5版存在的XSS跨站攻击漏洞

    2.5版本中发现的安全问题,即XSS(跨站脚本)漏洞,是一个重要的安全关注点,因为它可能允许攻击者注入恶意代码,对网站的用户造成危害。 XSS攻击是网络安全中的常见威胁,它利用了网站没有充分验证和过滤用户输入...

    XSS跨站脚本攻击

    ### XSS跨站脚本攻击详解 #### 一、XSS跨站脚本攻击概述 XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的Web应用安全威胁,其核心在于利用网站对用户输入数据的处理不当,允许攻击者注入恶意脚本到网页中,...

    云计算安全XSS跨站攻击.pdf

    并顺利执行,则相当于黑客直接拿到了Webshell 4、一旦黑客拿到Webshell,则可以拿到Web应用的数据,删除Web文件,本地提权,进一步拿下整个服务器甚至内网 5、SQL注入攻击的对象是数据库服务,文件上传漏洞主要攻击...

    SQL注入和XSS跨站攻击安全规范1

    【XSS跨站脚本攻击】 XSS(Cross-Site Scripting)是一种攻击手段,攻击者在Web页面中嵌入恶意脚本,当其他用户访问该页面时,脚本会在用户的浏览器上执行,可能会窃取用户的会话cookie或其他敏感信息。 2.1 名词...

    xss跨站脚本攻击与预防

    **XSS跨站脚本攻击详解** XSS(Cross Site Scripting)跨站脚本攻击是一种常见的网络安全漏洞,它允许攻击者在用户浏览器上执行恶意脚本,从而获取敏感信息或者操控用户的行为。这种攻击主要发生在Web应用中,攻击...

Global site tag (gtag.js) - Google Analytics