• 【web-避开客户端控件】(2.3.1)收集使用数据:浏览器扩展技术、攻击浏览器扩展的方法


    目录

    一、收集使用数据: 浏览器扩展

    简介:

    示例:

    流程:

    二、常见的浏览器扩展技术

    简介:

    Java

    Flash

    Silverlight

    三、攻击浏览器扩展的方法

    两种常用方法:


    一、收集使用数据: 浏览器扩展

    简介:

    收集、确认并提交使用的在浏览器扩展中运行的客户端组件(如java或Flash)的数据

    1、浏览器扩展从执行简单的任务,到创建功能强大的客户端组件。这些组件在浏览器中运行,跨越多个客户端平台,提供相关反馈, 提高灵活性, 并与桌面应用程序协作。

    2、使用浏览器扩展的一个作用:由于速度和用户体验,之前在服务器上执行的处理任务将在客户端完成。对某些应用程序(如网上交易)而言,速度至关项要,许多关键的应用程序任务需要在客户端完成。为了提高速度, 可能需要“有意”以牺牲安全为代价,客户端组件不可能为自己的业务逻出提供防御。

    3、浏览器扩展可以通过输入表单、或者在某些情况下通过与客户端操作系统的文件系统或注册表交互,以各种不同的方式收集数据。在将收集到的数据提交给服务器之前,可以对这些数据执行任何复杂的确认和处理。由于它们的内部工作机制与HTML表单和JavaScrip相比更加不透明,看似它们执行的确认更加难以躲避。通过浏览器扩展查找Web应用程序中存在的漏洞往往能够获得更大的成果


    示例:

    du博组件是应用客户端控件的典型浏览器扩展,客户端控件并不可靠,如果使用在潜在攻击者的机器上本地运行的浏览器扩展来执行在线du博应用程序。

    如果游戏的任何一个部分由客户端而非服务器控制,攻击者就可以非常精确地对游戏进行控制, 以提高获胜机率、改变规则、或更改返回给服务器的得分


    流程:

    1、可能会使用客户端组件来维护游戏状态。攻击者就可以在本地篡改游戏状态

    2、攻击者能够避开客户端控件, 并执行非法操作

    3、攻击者能够发现隐藏的功能、参数或资源,调用这些功能、参数或资源, 攻击者将可以非法访问服务器端资源

    4、还有其他玩家, 客户端组件可能会接收井处理其他玩家的信息



    二、常见的浏览器扩展技术

    简介:

    常见的浏览器扩展技术包括Java applet、Flash和Silverlight

    (有相似的安全功能)

    1、均编译成中间字节码

    2、在提供沙盒执行环境的虚拟机中运行

    3、可能会使用远程框架, 框架采用序列化来传输复杂数据结构, 或通过HTTP传送对象


    Java

    Java applet在Java虚拟机(JVM)中运行并采用由Java安全策略应用的沙盒

    Java在Web发展时间早,且其核心概念仍基本不变,有大量工具可用于对Java applet实施攻击或进行防御


    Flash

    Flash对象在Flash虚拟机中运行。和Java applet一样, Flash也要在主机上的沙盒中运行

    旧版Flash主要用于传送动画内容,新版本的ActionScript的推出后,现在Flash已经能够传送成熟的桌面应用程序


    Silverlight

    是微软开发的与Flash类似的产品

    该产品主要用于启动各种桌面应用程序,允许Web应用程序在浏览器内的沙盒环境中提供精简的NET体验。从技术上讲, 任何兼容NET的语言, 从C#到Python, 都可用于开发Silveclight,但C#是开发Silverlight最常用的语言



    三、攻击浏览器扩展的方法

    两种常用方法:

    1、拦截并修改浏览器扩展组件提出的请求及服务器的响应。

    是对浏览器扩展组件进行测试的最简单也是最快速的方法, 但这时你可能会遇到各种限制。正在传输的数据可能经过模糊处理或加密,或者使用专门针对所用技术的方案进行了序列化。仅仅查看组件生成的流量, 可能会忽略一些关键的功能或业务逻辑, 而这些功能或逻辑只需对组件本身进行分析就可以发现。在正常使用拦截代理服务器时也可能会遇到障碍,通过仔细配置, 完全可以克服这些障碍


    2、直接针对组件实施攻击,并尝试反编译它的字节码, 以查看其源代码,或者使用调试器与组件进行动态交互。

    优点在于, 如果进行得非常彻底的话, 将能够确定组件支持或引用的所有功能。还能修改组件向服务器提交的请求中的关键数据,而无论这些数据采用何种模糊处理或加密机制。其缺点在于, 这种方法可能相当费时, 并且需要深入了解浏览器扩展组件所使用的技术和编程语言。

  • 相关阅读:
    什么是自监督,自监督和有监督的区别什么是SSL
    Java 中的数据类型有哪些?
    基于最大似然估计与卡尔曼滤波的室内目标跟踪
    Python----函数中的说明文档
    【网络协议】Https
    Flutter中屏幕尺寸设置
    FFplay文档解读-32-视频过滤器七
    java计算机毕业设计ssm养老管理系统-敬老院系统
    MySQL EXPLAIN查看执行计划
    pytest(13)-多线程、多进程执行用例
  • 原文地址:https://blog.csdn.net/qq_53079406/article/details/126318105