【web-攻击用户】(9.7.3)本地隐私攻击:攻击浏览器

目录

攻击浏览器

1.1、简介:

1.2、记录键击

1.3、窃取浏览器历史记录与搜索查询

1.4、枚举当前使用的应用程序

1.5、端口扫描

1.6、攻击其他网络主机

1.7、利用非HTTP服务

1.8、利用浏览器漏洞

1.9、DNS重新绑定

1.10、浏览器利用框架

1.11、中间人攻击


攻击浏览器

1.1、简介:

这一类针对用户的攻击并不依赖于特定应用程序的行为。相反这些攻击主要利用浏览器的行为特征,或核心Web技术本身的设计缺陷,这些攻击可能由任何恶意网站或任何本身已被攻破的"良性" 站点实施。与利用应用程序特定功能的攻击的某些特点相同,通过展示在不存在任何应用程序特定漏洞的情况下,攻击者可以达到什么目的这些攻击还为我们了解各种应用程序行为的影响提供了相关信息

1.2、记录键击

1、JavaScrip可在浏览器窗口处于激活状态时监控用户按下的所有键,包括密码、私人消息和其他个人信息,概念验证脚本将截获浏览器中的所有键击,并在浏览器的状态栏中显示全部内容

2、只有当运行代码的框架处于激活状态时,这些攻击才能捕获键击。但如果在自身页面的框架内嵌入了第三方小组件或广告小程序,某些应用程序可能易于受到键击记录攻击。在所谓的"逆向键击劫持"攻击中,在子框架中运行的恶意代码能够夺取顶层窗口的控制权,因为同源策略并不能阻止这种操作。恶意代码可以通过处理onkeydown事件来捕获键击,并且能够将单独的onkeypress事件传递给顶层窗口。这样,输入的文本仍然会在顶层窗口中正常显示,通过在暂停输入时暂时放弃激活状态,恶意代码甚至可以在顶层窗口内的正常位置保存显示闪烁的光标

1.3、窃取浏览器历史记录与搜索查询

JavaScript可用于实施蛮力攻击,查明用户最近访问的第三方站点以及他们在常用搜索引擎上执行的查询。攻击者可以动态创建常用Web站点以及搜索查询的超链接,并使用getComputedStyle API检查这些链接是否以彩色标记为"已被访问",从而完成这项任务。且攻击者可以迅速检查大量可能的目标,而不会给用户造成很大的影响

1.4、枚举当前使用的应用程序

1、JavaScript可用于确定用户当前是否登录到第三方Web应用程序,大多数应用程序都包含只有登录用户可查看的页面,如"用户资料"页面,如果未通过验证的用户请求这个页面,将会收到错误消息,或一个转向登录页面的重定向链接。

2、通过对受保护的页面执行跨域脚本包含,并运行定制的错误处理程序来处理脚本错误,种行为可确定用户是否已经登录第三方Web应用程序

3、无论受保护的页面处于什么状态,由于它仅包含HTML内容,因此这时将会出现一个JavaScripr错误。重要的是,根据实际返回的HTML文档,该错误将包含不同的行号与错误类型。接下来,攻击者可以运行错误处理程序(在fingerprint函数中),检查用户登录时产生的行号与错误类型,尽管应用程序实施了同源策略,但攻击者的脚本仍然能够推断出受保护页面的状态。

4、确定用户当前登录哪些常用的第三方应用程序后,攻击者就可以执行针对性极强的跨站点请求伪造攻击,以被攻破的用户身份在应用程序中执行任意操作

1.5、端口扫描

1、JavaScript可对用户本地网络或其他可访问的网络上的主机进行端口扫描,以确定可被利用的服务。如果用户受到企业或家庭防火墙的保护,攻击者将能够到达无法通过公共互联网访问的服务。如果攻击者扫描客户端计算机的回环接口,就能够避开用户安装的任何个人防火墙。

2、基于浏览器的端口扫描可使用Javaapplet确定用户的IP地址(可能进行了网络地址转换),从而推断出本地网络的IP范围。然后脚本尝试与任意主机和端口建立连接,以测试连通性。如前所述,同源策略阻止脚本处理这些请求的响应。但在检测登录状态时使用的相似技巧也可用于测试网络连通性。这时攻击者的脚本尝试从每个目标主机和端口动态加载并执行一段脚本。

3、如果那个端口上有Web服务器正在运行,它将返回HTML或其他一些内容, 生成端口扫描脚本能够检测到的JavaScript错误。否则连接尝试将会超时或不返回任何数据,在这种情况下不会导致错误。因此, 尽管应用程序实施同源限制,端口扫描脚本仍然能够确定任意主机和端口的连通性

4、但大多数浏览器都在可以使用HTTP访问的端口上实施了限制,并阻止了其他主要服务常用的端口(如用于SMTP的端口25)。但通过利用相关漏洞,可以突破这些浏览器实施的限制

1.6、攻击其他网络主机

1、成功使用端口扫描确定其他主机后,就可以使用一段恶意脚本尝试标识每一个发现的服务,然后通过各种方法实施攻击。

2、许多web服务器包含位于特殊URL位置的图像文件,下面的代码检查一幅与一系列常用DSL路由器有关的图像:

<img src="http://192.168.190.131/hm.icon.gif" οnerrοr="notNetgear()">

3、如果notNetgear函数未被调用,则说明服务器已被成功标识为NETGEAR路由器,接下来脚本可通过利用特定软件中任何已知的漏洞,或执行请求伪造攻击,继续攻击Web服务器。在本示例中,攻击者可以尝试使用默认证书登录路由器,并对路由器进行重新配置,以打开其外部接口上的其他端口,或向外界披露它的管理功能。许多这种非常有效的攻击只需要提出任意请求,而不需要处理它们的响应,因此不会受到同源策略的限制。

4、在某些情况下,攻击者可以利用DNS重新绑定技巧违反同源策略, 从本地网络中的Web服务器中检索内容

1.7、利用非HTTP服务

1、除针对Web服务器实施攻击外,有些情况下还可以利用用户的浏览器、针对可以从用户的计算机访问的非HTTP服务实施攻击,只有所攻击的服务接受必然会在每个请求的开头出现的HTTP消头,攻击者就可以在消息主体中发送任意二进制内容,从而与非HTTP服务进行交互。实际上许多网络服务都接受无法识别的输入,并仍然处理随后针对相关协议而构造的输入

2、一种跨域发送任意信息主体的技巧,该技巧使用HTML表单(其enctype属性设置为text/plain)向易受攻击的应用程序发送XML内容。

3、实施这类攻击的其他技巧

协议间攻击可对目标服务实施未授权橾作,或利用该服务内的代码级漏洞来攻破目标服务器

在某些情况下, 还可以对非HTTP服务行为加以利用, 针对在同一服务器上运行的Web应用程序实施XSS攻击。要实施这种攻击, 必须满足以下条件

A、非HTTP服务必须在未被浏览器阻止的端口上运行

B、非HTTP必须接受浏览器发送的意外HTTP消息头,而不仅仅是在出现这种情况时关闭网络连搂。许多服务都接受意外HTTP悄息头,特别是那些基于文本的服务

C、非HTTP服务必须在其响应中(如在错误消息中)回显一部分请求内容

D、浏览器必须接受不包含有效HTTP消息头的响应,并且必须将一部分响应作为HTML处理(如果响应中包含HTML)。实际上在收到合适的非HTTP响应时,所有最新版本的浏览器都以这种方式进行处理

E、在隔离域源访问cookie时,浏览器必须忽略端口号。在处理cookie时,当前浏览器会忽略端口

4、如果满足这些条件,攻击者就可以构建针对非HTTP服务的XSS攻击。要实施这种攻击,需要以正常方式在URL或消息主体中发送专门设计的请求。请求中包含的脚本代码将被回显,并在用户的浏览器中执行。该代码可以从非HTTP服务所在的域中读取用户的cookie,然后将这些cookie传送给攻击者

1.8、利用浏览器漏洞

如果用户的浏览器或任何安装的扩展存在漏洞,攻击者就可以通过恶意JavaScript或HTML代码利用这些漏洞。攻击者可以利用Java虚拟机之类的扩展中的漏洞、与本地计算机或其他位置上的非HTTP服务进行双向二进制通信。这样攻击者就可以利用通过端口扫描确定的存在于其他服务中的漏洞。许多软件产品(包括并非基于浏览器的产品)还安装了可能包含漏洞的ActiveX控件

1.9、DNS重新绑定

1、DNS重新绑定是一种在某些情况下可部分违反同源策略,从而允许恶意Web站点与其他域进行交互的技术。之所以能够实施这种攻击,是因为同源策略主要基于域名进行隔离,而最终传送HTTP请求则需要将域名转换为IP地址

2、攻击的过程如下:

A、用户访问攻击者域上的恶意Web页面。为检索此页面,用户的浏览器会将攻击者的域名解析为攻击者的IP地址

B、攻击者的Web页面向攻击者的域提出Ajax请求(同源策略允许这种行为)。攻击者利用DNS直新绑定确保浏览器再次解析攻击者的域,在这次解析过程中,域名将解析为攻击者所针对的第三方应用程序的IP地址

C、随后针对攻击者的域名提出的请求将被发送到目标应用程序,由于这些请求与攻击者的原始页面在同一个域上, 因此同游策略允许攻击者的代码检索目标应用程序返回的请求的内容,并将这些内容返还给攻击者(可能位于受其控制的其他域上)

3、实施这种攻击将面临各种阻碍,包括一些浏览器为继续使用以前解析的IP地址(即使域已被重新绑定到其他地址)而采用的机制。此外浏览器发送的Host消息头仍然会引用攻击者的域,而不是可能会导致问题的目标应用程序的域。之前攻击者可以利用一些方法在各种浏览器上突破这些阻碍。除浏览器外还可以针对浏览器扩展和Web代理实施DNS重新绑定攻击,不过浏览器扩展和Web代理的运行机制可能会有所不同.

4、在DNS重新绑定攻击中,就浏览器而言,针对目标应用程序的请求仍然在攻击者的域中提出。因此这些请求中不会包含目标应用程序所在的域的任何cookie,攻击者可以通过DNS重新绑定从目标应用程序检索到的内容,与任何可以直接向目标应用程序提出请求的用户能够检索到的内容相同。这种技巧在目标应用程序已实施了其他控制来防止攻击者直接与其进行交互的情况下尤其有用。例如,如果用户处在无法通过互联网直接访问的组织内部网络中,攻击者可以诱使该用户从所在网络的其他系统中检索内容,并将这些内容传送给攻击者

1.10、浏览器利用框架

1、已开发出各种框架,用以演示和利用各种针对因特网终端用户的攻击。这些框架通常需要通过某种漏洞(如XSS),在受害者的浏览器中放入一个JavaScript钩子(hook),放置钩子后,浏览器就会与攻击者控制的服务器建立联系,浏览器会定期访问这个服务器,向攻击者提交数据,同时提供一个控制信道,方便接收攻击者发出的命令

2、尽管同源策略实施了各种限制,但攻击者仍然可以利用各种技巧、通过已注入到目标应用程序中的脚本与其控制的服务器进行双向异步交互。一种简单的方法是对自己的域实施动态跨域脚本包含,这些请求能够向攻击者提交截获的数据(在URL查询字符串中),并接收有关应执行的操作的指令(在返回的脚本代码中)

3、BeEF是一个典型的综合型浏览器利用框架,能够执行各种功能

4、XSS Shell是另外一个功能非常强大的浏览器利用框。这个框架提供一系列功能, 可控制通过XSS攻破的僵尸主机,包括截获键击、剪贴板内容、鼠标移动、屏幕截图、URL历史记录,以及注入任意JavaScript命令,即使导航到应用程序的其他页面, 它还会驻留在用户的浏览器中。

1.11、中间人攻击

如果应用程序使用未加密HTTP通信,则位于适当位置的攻击者可以通过各种方式拦截敏感数据, 如密码和会话令牌,即使应用程序使用HTTPS传输所有敏感数据,并且目标用户始终验证是否正确使用了HTTPS,攻击者仍然能够实施一些严重的攻击

 

中间人攻击原理https://blog.csdn.net/qq_53079406/article/details/126217434?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166183631916782388012702%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166183631916782388012702&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-126217434-null-null.nonecase&utm_term=%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB&spm=1018.2226.3001.4450中间人攻击工具Ettercaphttps://blog.csdn.net/qq_53079406/article/details/126229815?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166183631916782388012702%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166183631916782388012702&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-126229815-null-null.nonecase&utm_term=%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB&spm=1018.2226.3001.4450

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色地带(崛起)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值