CSS注入实例

  • 时间:2018-06-28 22:17 作者:石头大V 来源:石头大V 阅读:65
  • 扫一扫,手机访问
摘要:学习CSS注入的目的是学习计算机知识,千万不要做违背法律的事情,不然等待你的是法律的严惩。CSS仅仅只是一种使用来表示样式的语言吗?当然不是!CSS就已被安全研究人员运使用于渗透测试当中。用属性选择器和iFrame,并通过CSS注入来窃取敏感数据的方法。但因为该方法需要iFrame,而大多数主流站点

学习CSS注入的目的是学习计算机知识,千万不要做违背法律的事情,不然等待你的是法律的严惩。

CSS仅仅只是一种使用来表示样式的语言吗?当然不是!CSS就已被安全研究人员运使用于渗透测试当中。用属性选择器和iFrame,并通过CSS注入来窃取敏感数据的方法。但因为该方法需要iFrame,而大多数主流站点都不允许该操作,因而这种攻击方法并不实使用。这里为大家详细详情一种不需要iframe且只要10秒,就可以为取得CSRF token的方法。

CSS注入实例

一、背景

CSS属性选择器开发者能根据属性标签的值匹配子字符串来选择元素。 这些属性值选择器能做以下操作:

  • 假如字符串以子字符串开头,则匹配
  • 假如字符串以子字符串结尾,则匹配
  • 假如字符串在任何地方包含子字符串,则匹配

属性选择器可以让开发人员查询单个属性的页面HTML标记,并且匹配它们的值。一个实际的使用例是将以“https://example.com”开头的所有href属性变为某种特定的颜色。而在实际环境中,少量敏感信息会被存放在HTML标签内。在大多数情况下CSRF token都是以这种方式被存储的:即隐藏表单的属性值中。

能将CSS选择器与表单中的属性进行匹配,并根据表单能否与起始字符串匹配,加载一个外部资源,例如背景图片,来尝试猜测属性的起始字母。通过这种方式,攻击者能进行逐字猜解并最终获取到完整的敏感数值。想要处理这个问题受害者能在其服务器实施内容安全策略(CSP),防止攻击者从外部加载CSS代码。

CSS注入实例

二、无 iFrames

要做到无iFrame,用一种方法:创立一个弹窗,而后在设置计时器后更改弹出窗口的位置。用这种方依然能加载受害者的CSS,不再依赖于受害者能否允许iFrame。由于最初的弹出是通过使用户事件触发的,没有被浏览器阻止。为了强制重载,在CSS注入间弹出一个虚拟窗口,如下:

CSS注入实例

但因为CSRF是针对用户端的攻击,因而假如可以想出一种不需要服务器的方法,那么即可以节省大量的开销和简化操作。为了接收用户端加载资源,能利使用Service Workers来阻拦和读取请求数据。Service Workers目前只适使用于同源请求,在演示中受害者和攻击者页面已处于同一源上。

不久后,chrome很可可以会合并这个试验性的功可以,允许Service Workers阻拦跨域请求。这样,即可以确保在用户端的攻击100%的执行,并强制使用户在10秒内点击链接执行CSRF攻击,演示如下:

三、Demo

如上所述,由于不想运行一个web服务器,所以用service workers阻拦和模拟服务器端组件。目前,该演示只适使用于Chrome浏览器。首先创立了一个易受攻击的目标,它存在一个基于DOM的CSS注入漏洞,并在页面放置了一个敏感token。再对脚本标签增加了少量保护措施,对左尖括号和右尖括号进行了编码。

CSS注入实例

接下来将强制加载受害者的CSS,并且用上述方法,可一次窃取(猜解)一个敏感字符。在接收端,定义一个阻拦请求的service worker,并通过post-message将它们发送回域,而后将token存储在本地存储中以供后续用。你也能想象一个后台Web服务器,通过Web套接字或者轮询将CSRF token回发给攻击者域。

假如你的浏览器支持的话,只要点击打开页面任意位置,你将看到CSRF token将逐一被猜解出来。

四、结束语

反射型CSS注入实际上比存储型CSS注入更致命,由于存储型CSS注入需要一个服务器在受害者渲染之前来升级CSS。一段时间以来,CSS注入在严重程度上来回变化。过去IE浏览器是允许使用户在CSS中执行Javascript代码的。这个演示也从某种程度上表明了CSS注入,以及渲染不受信任的CSS仍会导致严重的安全问题。所以在设计软件肯定要测试,才可以及时发现和修复各种漏洞。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|服务器应用】Spring02——实现动态代理商阻拦器(2018-10-20 23:18)
【系统环境|服务器应用】Spring01——SpringIoC容器(2018-10-20 23:17)
【系统环境|服务器应用】最大堆进阶:堆排序及其优化(2018-10-20 23:17)
【系统环境|服务器应用】【一文读懂】百度一下,背后可不只是简单的一下(2018-10-20 23:17)
【系统环境|服务器应用】注意!这5种搜索套路,让你资源搜索不求人(2018-10-20 23:17)
【系统环境|服务器应用】Java线程池---Executor框架源码深度解析(2018-10-20 23:16)
【系统环境|服务器应用】X.509证书认证模式简介(2018-10-20 23:16)
【系统环境|服务器应用】Spring Security权限框架理论与实战(二)-常用权限阻拦器(2018-10-20 23:16)
【系统环境|服务器应用】做程序员太辛苦了, 我想换行,我该怎样办? “敲一下回车。”(2018-10-20 23:16)
【系统环境|服务器应用】mysql中使用select的正确姿势你知道吗?(2018-10-20 23:16)
手机二维码手机访问领取大礼包
返回顶部