加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

“黑客”必学攻击之“跨站脚本攻击”

发布时间:2018-12-15 04:47:39 所属栏目:评论 来源:信息安全我来讲你来听
导读:最近很多小伙伴们看了我的文章给我私信说能不能讲讲跨站脚本攻击技术,今天就以本篇文章详细讲解一下黑客常用的攻击手法跨站脚本攻击。 一、 什么是跨站脚本攻击? 官方定义:(Cross Site Scripting),为了不和(Cascading Style Sheets, )的缩写混淆,故将

如果您在任何前面的实例中成功进行了HTML注入,那么该HTML注入就可用于在那个域上的任何地方的XSS。您可以用多种不同的方法来向Web应用程序注入JavaScript。如果你的尝试曾经导致页面格式被破坏,诸如截断页面、显示了除您注入以外的脚本,那么很可能就是找到了一个XSS漏洞。

3. 重定向器中的反射式HTML注入

HTML注入的另一个大舞台是重定向器。有些重定向器允许用户重定向到任何URL。 遗憾的是,JavaScript:a_lert(1)是一个合法的URL。许多重定向器会对URL进行解析,以确定重定向到那里是否安全。这些解析器以及他们的程序员并不总是人们想象的那么聪明,所以像下面的URL:

javascript://www.anywhere.com/%0da_lert( 1 )

以及这个:

javascript://http://www.trustedsite.com/trustedDirectory/%0da_lert( 1 )

可能被接受。在上面的例子中,任何字符串都可以放置在JavaScript注解所用的双斜杠之间以及URL编码的换行符(%0d)之间。

4. 移动式应用中的HTML注入

有些流行的Web应用程序被移植到移动通信领域。这些移动式应用一般具有相同的功能,但是安全特性更差,并且仍然可以通过诸如IE 以及Firefox之类的浏览器进行访问。 因此,它们是HTML注入攻击以及跨站请求伪造的理想攻击目标。

通常情况下,移动式应用作为主要的Web应用程序运行在相同的域上,因此移动式应用中的任何HTML注入都能够访问整个域,包括运行在该域上的主要的Web应用程序或者其它的Web应用程序。

5. 在Ajax响应以及错误信息中的HTML注入

并非所有HTTP应答都会显示给用户。类似AJAX响应以及超文本传输协议(http)错误消息这些页面通常会被开发人员所忽视。开发人员可能没有考虑为AJAX响应提供HTML注入保护,因为这些请求通常不是由用户直接使用的。然而,,攻击者可以用先前的代码片断模仿AJAX的GET以及POST请求。

同样的,超文本传输协议(http)错误响应,诸如HTTP 404(Not Found)、HTTP 502(Server Error)等等,通常也会被开发人员所忽略。开发人员倾向于假定一切都是HTTP 200(OK)。您可以尝试触发其它的响应,而非仅仅HTTP 200,然后试着注入脚本。

6. 使用UTF-7编码进行HTML注入

如果用户的IE自动选择编码集,那么攻击者就能规避大多数HTML注入预防措施。就像前面提到的那样,HTML注入的预防措施一般依赖于对潜在的有害字符进行转义处理。然而,UTF-7编码技术使用了无法正常转义的通用字符,而这些通用字符有时无法被某些Web应用程序进行换码。 的UTF-7转义版本将是下面的样子:

  1. +ADw-script+AD4-a_lert(1)+ADw-/script+AD4- 

注意,这是一种不常见的攻击,因为用户一般不会打开自动选择编码技术选项。当然,也存在其他的利用字符编码可变长度的UTF编码攻击技术,但是这要求对UTF有着深入广泛的理解,所以它超出了本文的讨论范围。然而,这个问题说明其它编码(例如MIME类型)的疏漏也是能引起HTML注入的。

7. 利用MIME 类型不匹配来进行HTML注入

IE具有许多令人惊讶的未公开特性,例如,IE7 以及之前的版本尝试加载一个图像或者其它的非HTML的响应并且失败时,它会将该响应作为HTML对待。为了弄明白这个情况,我们可以创建一个文本文件,并包含下列内容:

之后,将其保存为alert.jpg,然后在IE的URL地址栏中或一个iframe中装载的这个"图像",这就会导致这里的JavaScript被执行。

注意,如果该文件是从一个图像标签加载的话,它就不会作为脚本执行了。

一般说来,当您试图上载这样的一个文件到一个图像托管服务时,该服务将拒绝这个文件,因为它根本就不是一个图像。但是图像托管服务通常情况下会忽视文件的扩展名,而只通过文件的幻数(开始几个字节)来确定文件类型。

因此,攻击者可以避开它,方法是用GIF注释中的HTML来创建一个GIF图像,然后将这个GIF保存为.jpg文件扩展名的文件。下面是一个单像素的GIF文件,如下所示:

  1. 00000000 47 49 46 38 39 61 01 00 01 00 80 00 00 ff ff ff |GIF89a..........|  
  2. 00000010 ff ff ff 21 fe 19 3c 73 63 72 69 70 74 3e 61 6c |...!.. .| 
  3. 00000030 2c 00 00 00 00 01 00 01 00 00 02 02 44 01 00 3b |,...........D..;| 

将其命名为test.jpg,并在IE中加载它,这会导致执行这段JavaScript。这也是注入Flash跨域政策的一种好方法。只要把Flash安全策略的XML内容放入GIF注释,并保证这个GIF文件不包含扩展的ASCII字符或者字节NULL即可。您还可以把HTML注入到未压缩的图像文件(诸如XPM以及BMP文件)的图像数据部分,而不是注解中。

8. 使用Flash进行HTML注入

在大多数HTML注入情形中,攻击者可以注入任意的HTML。举例来说,攻击可以注入一个对象和/或嵌入一个标签来加载该域上的Flash应用程序。 下面是一个例子:

这里的HTML有些繁琐,但是它将JavaScript应用程序具有的控制权赋予一个Flash应用程序,例如(经过ExternalInterface类)读取Cookie、(经过ExternalInterface类)改变web页面外观、(经过XML类)读取用户私人数据以及(经过XML类)以受害者的名义建立HTTP请求。

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读