十、避开客户端控件——通过客户端传送数据

news2025/1/1 23:45:29

文章目录

  • 一、通过客户端传送数据
    • 1.1 隐藏表单字段
    • 1.2 HTTP cookie
    • 1.3 URL参数
    • 1.4 Refere消息头
    • 1.5 模糊数据
    • 1.6 ASP.NET *ViewState*

  由于客户端可提交任意输入,Web应用程序的核心安全因此受到威胁。尽管如此,大部分的Web应用程序仍然依靠在客户端执行各种措施,对它提交给服务器的数据进行控制。通常,这种做法造成一个基本的安全缺陷:用户能够完全控制客户端和由其提交的数据,并可以避开任何在客户端执行但服务器并不采用的控件。

  应用程序依靠客户端控件限制用户输入表现在两个方面:首先,应用程序可通过客户端组件,使用某种它认为可防止用户修改的机制传送数据。其次,应用程序可在客户端执行保护措施,控制用户与其客户端的交互,从而对功能实施限制,并(或)在提交用户输人之前对这些输入进行控制。我们可通过使用HTML表单功能、客户端脚本或浏览器扩展技术实现这种控制。

一、通过客户端传送数据

  应用程序通常以终端用户无法直接查看或修改的方式向客户端传送数据,希望客户端在随后的请求中将这些数据送回服务器。
  由于客户端向服务器传送的一切内容都完全处于用户的控制范围内,认为通过客户端传送的数据不会被修改,这种看法往往是错误的,并致使应用程序易于遭受一种或几种攻击。

1.1 隐藏表单字段

  隐藏HTML表单字段是一种表面看似无法修改,通过客户端传送数据的常用机制。如果一个表单标记为隐藏,它就不会显示在屏幕上。但是,用户提交表单时,保存在表单中的字段名称和值仍被送交给应用程序。
  在隐藏表单字段中保存产品价格的零售应用程序就是存在这种安全缺陷的典型示例。在Web应用程序发展的早期阶段,这种漏洞极其普遍,现在也绝没有消失。

  创建隐藏表单的代码如下:

在这里插入图片描述

  ❗️❗️❗️表单字段名为price,其被标记为隐藏。用户提交表单时,这个字段将被送交给服务器:

在这里插入图片描述

  虽然用户无法对price字段进行编辑,但是在客户端进行的一切操作最终将由用户控制,用户需要编辑价格时就可解除这个限制。要实现编辑操作,有以下两种方法:

  • 保存HTML页面的源代码,编辑字段的值,然后将源代码重新载入浏览器,并单击Buy按钮。
  • 使用拦截代理服务器(intercepting proxy)对数据进行动态修改。

代理服务器位于Web浏览器和目标应用程序之间。它拦截应用程序发布和收到的每一个HTTP或HTTPS请求和响应。用户可通过它拦截任何消息,对其进行检查或修改。

1.2 HTTP cookie

 &emspHTTP cookie是通过客户端传送数据的另一种常用机制。和隐藏表单字段一样,HTTP cookie一般并不显示在屏幕上,也不可由用户直接修改。用户可使用拦截代理服务器,通过更改设置cookie的服务器响应或随后发布这些cookie的客户端请求,对HTTP cookie进行修改。

  下面以前面的示例(稍作修改)为例进行说明。消费者登录应用程序后,收到以下响应:

在这里插入图片描述
  DiscountAgreed cookie是依靠客户端控件(基于cookie一般无法被修改这个事实)保护通过客户端传送的数据的典型示例。如果应用程序信任DiscountAgreed cookie返回给服务器的值,那么消费者修改这个值就可获得任意折扣。例如:

在这里插入图片描述

1.3 URL参数

  应用程序常常使用预先设定的URL参数通过客户端传送数据。例如,用户浏览产品目录时,应用程序会向他们提供指向下列URL的超链接:

http: / /mdsec.net/shop/ ?prod=3&pricecode=32

  如果包含参数的URL显示在浏览器的地址栏中,任何用户不需要使用工具就可任意修改其中的参数。但是,在许多情况下,应用程序并不希望普通用户查看或修改URL参数。例如:

  • 使用包含参数的URL加载嵌入图像时;
  • 使用包含参数的URL加载框架内容时;
  • 表单使用POST方法并且其目标URL包含预先设定的参数时;
  • 应用程序使用弹出窗口或其他方法隐藏浏览器地址栏时。

1.4 Refere消息头

  浏览器在大多数HTTP请求中使用Referer消息头。浏览器使用这个消息头指示提出当前请求的页面的URL——或者是因为用户单击了一个超链接或提交了一个表单,或者是因为该页面引用了其他资源(如图像)。因此,我们可以利用这个消息头通过客户端传送数据。

  以帮助忘记密码的用户重新设置密码的机制为例。应用程序要求用户按规定的顺序完成几个步骤,然后再通过以下请求重新设置密码值:

在这里插入图片描述
  应用程序可以使用Referer消息头证实这个请求是在正确的阶段(Admin.ashx)提出的,然后才允许用户访问请求的功能。

  但是,因为用户控制着每一个请求,包括HTTP消息头,他可以直接进人CreateUser.ashx,并使用拦截代理服务器将Referer消息头的值修改为应用程序需要的值,从而轻易避开这种控制。

1.5 模糊数据

  有时候,通过客户端传送的数据被加密或进行了某种形式的模糊处理,因而变得晦涩难懂。有几种方法可以对通过客户端传送的模糊数据实施攻击。

  • 如果知道模糊字符串的明文值,可以尝试破译模糊处理所使用的模糊算法。
  • 应用程序的其他地方可能包含一些功能,攻击者可以利用它们返回由自己控制的一段明文生成的模糊字符串。在这种情况下,攻击者可以向目标功能直接提交任意一个有效载荷,获得所需要的字符串。
  • 即使模糊字符串完全无法理解,也可以在其他情况下重新传送它的值,实现某种恶意效果。
  • 如果其他所有方法全都无效,还可以通过提交畸形字符串,如包含超长值、不同字符集等错误的字符串,尝试攻击负责对模糊数据进行解密或去模糊处理的服务器端逻辑。

1.6 ASP.NET ViewState

  ASP.NETViewState是一种通过客户端传送模糊数据的常用机制。它是一个由ASP.NET Web应用程序默认创建的隐藏字段,其中包含关于当前页面状态的序列化信息。ASP.NET平台使用ViewState提高服务器的性能——服务器通过它在连续提交请求的过程中保存用户界面中的元素,而不需要在服务器端维护所有相关的状态信息。

  除这种核心功能外,开发者还在连续提交请求的过程中使用viewState保存任意信息。例如,应用程序可以不将产品价格保存在隐藏表单字段中,而是将其保存在viewState中,如下所示:
在这里插入图片描述

  返回给用户的表单如下:

在这里插入图片描述
  当用户提交表单时,浏览器将发送以下请求:

在这里插入图片描述
  很显然,上面的请求中并不包含产品价格——只有订购的数量和模糊处理后的ViewState参数。随意更改这个参数将会导致应用程序显示错误消息,导致交易终止。

  ViewState参数实际上是一个Base64编码字符串,用户可以轻松对这个字符串进行解码,以查看其代表的价格参数,如下所示:
在这里插入图片描述

在对一个可能为Base64编码的字符串进行解码时,可能会犯一个错误,即从字符串的错误位置开始解码。鉴于Base64编码的特点,如果从错误的位置开始解码,解码后的字符串中会出现乱码。Base64采用基于数据块的格式,每4字节的编码数据解码后会变为3个字节。因此,如果解码后的Base64字符串并无意义,请尝试从编码字符串中的4个相邻的偏移值位置开始解码。

  此外,默认情况下,ASP.NET平台通过在ViewState中加人一个密钥散列(称为MAC保护)来防止篡改。但是,一些应用程序禁用了这项默认启用的保护,这意味着攻击人员可以修改viewstate的值,以确定其是否会对应用程序的服务器端处理产生影响。

  Burp Proxy提供一个指示ViewState是否受MAC保护的viewState解析器,如下图所示。如果ViewState未受到保护,则攻击人员可以使用viewState树下的十六进制编辑器在Burp中编辑ViewState的内容。在向服务器或客户端发送消息时,Burp将发送经过更新的ViewState。
在这里插入图片描述
  渗透测试步骤:

  • 如果要攻击ASP.NET应用程序,确定是否对viewState启用了MAC保护。如果Viewstate结构末尾存在一个20字节的散列,即表示应用程序启用了MAC保护。可以使用BurpSuite中的解析器确定上述散列是否存在。
  • 即使ViewState受到保护,还可以解码各种不同应用程序页面中的ViewState参数,了解应用程序是否使用viewState通过客户端传送任何敏感数据。
  • 尝试修改viewState中某个特殊参数的值,但不破坏它的结构,看看是否会导致错误消息。
  • 如果能够修改ViewState而不会造成错误,则应该分析ViewState中每个参数的功能,以及应用程序是否使用这些参数保存任何定制数据。尝试用专门设计的值代替每一个参数,探查常见的漏洞,就像检查通过客户端传送的其他数据项一样。
  • 注意,不同页面可能启用或禁用MAC保护,因此有必要测试应用程序的每一个重要页面,了解其中是否存在ViewState攻击漏洞。如果在启用被动扫描的情况下使用Burp Scanner,Burp将自动报告任何使用viewState但未启用MAC保护的页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/880203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数组的详述(1)

1、一维数组的创建和初始化: 数组是一组相同类型元素的集合。 (1)创建方式: type_t 是指数组的元素类型 arr_name 数组名 [const_n] 一个常量表达式,用来指定数组的大小 //在c99标准之前,数组的大小必须是常…

vscode | linux | c++ intelliense 被弃用解决方案

每日一句,vscode用的爽是爽,主要是可配置太强了。如果也很会研究,可以直接去咸鱼接单了 废话少说,直接整。 用着用着说是c intelliense被弃用,很多辅助功能无法使用,像查看定义、查看引用、函数跳转、智能提…

解决ubantu驱动掉了的问题

这里写自定义目录标题 解决ubuntu驱动掉了的问题 解决ubuntu驱动掉了的问题 首先确定是否有驱动: ls /usr/src | grep nvidia若有,则大概率是驱动版本与内核版本对应不上,则把内核版本切换为初始版本即可。参照:https://blog.cs…

《封神第一部》票房已破21亿,商朝真有大象,苏妲己可能是周文王的恩人

随着《封神第一部:朝歌风云》的持续大火,我周六也去电影院贡献了一票,重温中国神话经典,感受历史史诗的震撼,改编的非常棒,我很喜欢。 针对影片中的一些故事和疑问,做些总结。 1、影片中有几处镜…

仓储二代拣货标签接口

1.批量拣货更新标签信息接口 http://localhost/smartpick/associate/lightTags 代码形式: { url : http://localhost/smartpick/associate/lightTags, requestMethed : POST, requestParameter : { [ {"mac":"99.99.22.03","devty…

item_review-获得淘宝商品评论

一、接口参数说明: item_review-获得淘宝商品评论,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_review 名称类型必须描述keyString是调用key(点击获…

互联网+AI+智慧工地管理平台源码(Spring Cloud +Vue)

基于微服务JavaSpring Cloud VueUniApp MySql开发的智慧工地管理源码,SaaS模式。 一、智慧工地概念 智慧工地就是互联网建筑工地,是将互联网的理念和技术引入建筑工地,然后以物联网、移动互联网技术为基础,充分应用BIM、大数据、…

银河麒麟桌面版下使用minicom测试串口通信

1硬件和环境:银河麒麟桌面版的笔记本和台式机。 2软件工具:minicom 3硬件工具:串口转接线,使用ft232芯片的usb转rs232公头。杜邦线。这个芯片的转接线是linux免驱的。 4连接:笔记本usb口连接串口转接线,串…

骆驼祥子思维导图怎么绘制?教你这样在线制作

骆驼祥子思维导图怎么绘制?绘制骆驼祥子思维导图可以帮助读者更好地理解小说的主题和结构。通过思维导图的形式,可以清晰地展示小说中各个人物之间的关系、事件的发展以及主题的演变等等。这不仅可以帮助读者更深入地理解小说,还可以帮助他们…

安卓13解决链接问题

作为Android用户,你可能已经注意到了一个问题——Android 13不再支持PPTP协议。但请别担心,作为一家专业的代理供应商,我们将与你分享解决方案,让你轻松解决L2TP问题,享受到高水平的连接体验。本文将为你提供实用的操作…

BC117 小乐乐走台阶(附完整代码)

描述 小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法? 输入描述 输入包含一个整数n (1 ≤ n ≤ 30) 输出描述 输出一个整数,即小乐乐可以走的方法数。 思路&a…

如何使VMware虚拟机的屏幕自适应窗口大小

安装VMware tool 首先安装VMware tool,在选项中选取安装 之后在虚拟机中会出现光盘映像,点击打开光盘,点击VmwareTools-xxxx.tar.gz压缩包,将vmware-tools-distribute文件夹解压在任意一个目录下 解压后,右键点击…

搜文本搜位置搜图片,1小时玩转阿里云 Elasticsearch

作者:朱杰、奚悦、黄宇 AI 和搜索的整合已成为下一代搜索引擎的发展趋势,技术革新的浪潮下,你是否想抓住搜索领域的新机会,增强 AI 产品力与技术竞争力? 想学习搜索引擎技术的你,是否面临这样的困惑&…

OBD接口引脚定义

汽车的OBD接口引脚定义分配如下图所示,OBD接口共有16个引脚(可参考 ISO 15031-3)。 1、引脚1,3,8,9,11,12,13 引脚1,3,8,9,11,12,13由主机厂进行分配。 2、引脚2 如果车辆中使用SAE J1850 10,4 VPW(可变脉冲)来提供…

【爬虫】P1 对目标网站的背景调研(robot.txt,advanced_search,builtwith,whois)

对目标网站的背景调研 检查 robot.txt估算网站大小识别网站所用技术寻找网站的所有者 检查 robot.txt 目的: 大多数的网站都会包含 robot.txt 文件。该文件用于指出使用爬虫爬取网站时有哪些限制。而我们通过读 robot.txt 文件,亦可以最小化爬虫被封禁的…

职场中常用的项目管理软件盘点:了解这些选择

随着工作的深入,就会发现管理类软件在职场中真的很重要,比如项目管理软件。一个好用的项目管理软件能够让工作达到事半功倍的效果,就比如Zoho Projects项目管理软件,它不仅可以将项目内容进行细化,还有更多有利于团队协…

浅谈统一权限管理服务的设计与开发

作者 | 天地练心 导读 本文详细探讨了统一权限管理服务(MPS)的设计与开发,针对企业内部多平台权限管理混乱的问题,提出了一套综合RBAC、ACL、DAC权限模型的解决方案。文章从需求分析、技术选型、功能设计等方面全面介绍了MPS的构建…

提高考试成绩的有效考试培训系统

近年来,随着考试竞争的日益激烈,对于学生来说,提高考试成绩已成为一项重要的任务。为了帮助学生有效提升考试成绩,我们开发了一套全面而详细的有效的考试培训系统。 该培训系统作为一种全新的教学方法,力求通过提供多…

针对Android项目蓝牙如何学习

一、概述(Overview) 蓝牙是一种专有的开放式无线技术标准,用于在固定和移动设备之间进行短距离数据交换(使用2400–2480 MHz ISM波段的短波长无线电传输),从而创建具有高度安全性的个人局域网(PANs)。由电信供应商爱立信(telecoms vendor Ericsson)于1994年创建,[1…

ssm+vue线上旅行信息管理系统源码和论文PPT

ssmvue线上旅行信息管理系统源码和论文PPT011 开发工具:idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具:navcat,小海豚等 开发技术:java ssm tomcat8.5 1、立论依据(课题来源、选题依据和背景情况、课题研究目的、理论意义…