当前位置: 首页 > news >正文

【web-利用信息泄露】(10.2)收集公布的信息、使用推论

目录

一、收集公布的信息

1.1、简介:

1.2、过程:

二、使用推论

2.1、简介:

2.2、过程:


一、收集公布的信息

1.1、简介:

除在错误消息中泄露有用的信息外,Web应用程序直接公布的信息也是它披露敏感数据的另一个主要源头,由于以下原因, 应用程序可能会公布对攻击者有利的信息

A、公布的信息在设计上属于应用程序核心功能的一部分

B、公布的信息会无意中给其他功能造成负面影响

C、由仍然存在于当前应用程序中的调试功能泄露信息

D、由于某个漏洞(如访问控制不完善)而导致信息泄露


应用程序可能向用户公布的敏感信息通店包括以下几项

A、有效用户名, 账号与文档ID列表

B、用户个人资料, 包括用户角色与权限、最后登录日期与账户状态

C、用户当前使用的密码(该密码在屏幕上隐藏显示,但却出现在页面源代码中)

D、包含在日志文件中的信息,如用户名、URL 、执行的操作, 会话令牌与数据库查询

E、客户端HTML源代码中与应用程序有关的细节,如作为注释处理的链接或表单字段以及关于漏洞的注释

1.2、过程:

1、检查应用程序解析过程中得到的结果,确定可用于获取有用信息的所有服务器端功能与客户端数据。

2、在应用程序中确定服务器向浏览器返回密码或信用卡资料等敏感数据的所有位置。即使这些信息在屏幕上隐藏显示,但仍然可以在服务器的响应中看到这些信息。如果发现其他适当的漏洞,如访问控制或会话处理方面的漏洞, 就可以利用这种行为获取属于其他应用程序
用户的信息。

3、如果已经确定任何提取敏感信息的方法,使用自动攻击解析过程



二、使用推论

2.1、简介:

1、有些情况下,应用程序可能不会直接泄露任何数据,但可以根据它的行为准确推断出有用的信息

2、在探查其他类型漏洞的过程中,遇到过许多以这种方式泄露信息的情况:

A、注册功能允许在选择已经存在的用户名时根据出现的错误消息枚举出已注册的用户名

B、搜索引擎允许推断出未获授权就可直接查看的编入索引的文档内容

C、在盲目SQL注入漏洞中,可以通过给一个现有的查询增加一个二进制条件, 一次一位地提取信息

D、.NET中的"填充提示"攻击,在这种攻击中,攻击者可以通过向服务器发送一系列请求并观察哪些请求在解密期间导致错误,从而解密任何字符串

3、另外根据某种对攻击者有利的打事实,如果应用程序执行不同操作所用的时间各不相同, 那么应用程序行为上的这种细微差异也会导致信息泄露,这种差异由以下原因造成:

A、许多复杂的大型应用程序需要从数据库、消息队列与大型主机等后端系统中提取数据,为提高性能,一些应用程序缓存频繁使用的信息。同样,一些应用程序采用一种延迟加载模式,仅在需要时加载对象和数据。在这种情况下,应用程序会从服务器的本地缓存中迅速提取出最近访问的数据,而从相关后端系统中相对缓慢地提取出其他数据。

电子银行应用程序常常以这种方式运作,与活动账户相比,访问一个休眠账户通常需要更长的时间,就可以利用这种行为枚举出其他用户最近访问的账户

B、有时应用程序处理某个特殊请求所花的时间取决于用户提交的数据是否有效。例如,如果向登录机制提交一个有效的用户名,应用程序就会执行各种数据库查询,获取账户信息并更新审计日志,同时执行需要进行大量计算的操作,根据保存的散列确认用户提交的密码。如果攻击者能够探测到这种时间差异,就能利用它枚举有效的用户名

C、一些应用程序可能会根据用户输入执行一项操作,如果用户提交的某个数据无效,就会造成超时,如果某应用程序使用cookie保存一个前端负载均衡器之内的主机地址,攻击者就可以操纵这个地址,扫描组织内部网络中的Web服务器。如果提交的服务器地址不属于应用程序基础设施的范围,应用程序就会立即返回一个错误。

如果提交一个不存在的地址,那么尝试连接这个地址就会造成超时,然后应用程序再返回与上一种情况相同的常规错误,攻击者可以利用bp结果表中的响应计时器进行这种测试。默认情况下这些列隐藏不可见,但可通过Columns菜单显示

2.2、过程:

1、应用程序响应时间上的差异可能非常微小,难以探测。通常只有在向关键区域提交重要的数据以及所执行的处理很可能会导致时间差异时,才值得在应用程序中探查这种行为。

2、为测试某个特殊的功能,编辑两个列表,其中分别包含几个已知有效(或最近被访问)的数据和已知无效(或休眠状态)的数据。以可控制的方式提出包括这两个列表中的每一个数据的请求,一次仅提出一个请求,然后监控应用程序响应每个请求所用的时间。确定数锯的状态与响应时间之间是否存在任何关联

3、可以使用Burp lntruder自动完成这项任务,对于每一个生成的请求,Intruder将自动记录应用程序响应前所用的时间以及完成响应所用的时间,还可以按这些属性对结果表进行分类,迅速确定明显关联

相关文章:

  • java计算机毕业设计文档资料管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  • JS中数组reduce()方法使用
  • 国稻种芯百团计划行动 任万军:减穴稳苗方法提高稻米品质
  • 新房IM转加私五步骤!!!
  • FPGA结构分析——ODDR,网口储备点2
  • DFS之剪枝与优化AcWing 166. 数独
  • 公司保护知识产权做法有哪些
  • Map和mybatis
  • 信息化与工业化融合,MES管理系统助力制造业发展
  • 国稻种芯百团计划行动 邓兴旺:依靠中国农业现代化的实现
  • Promethues入门,看懂不会写
  • Windows 10硬盘数据怎么永久擦除?
  • Jenkins 踩坑(四)|基于接口自动化测试完成
  • package.json配置
  • [折腾]使用SSH服务实现一个socks5代理服务器
  • [PHP内核探索]PHP中的哈希表
  • 分享一款快速APP功能测试工具
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • javascript从右向左截取指定位数字符的3种方法
  • jdbc就是这么简单
  • Redux系列x:源码分析
  • uva 10370 Above Average
  • 浅谈web中前端模板引擎的使用
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 用jQuery怎么做到前后端分离
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • #etcd#安装时出错
  • ${factoryList }后面有空格不影响
  • (C++17) optional的使用
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (WSI分类)WSI分类文献小综述 2024
  • (二)斐波那契Fabonacci函数
  • (十八)三元表达式和列表解析
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .cn根服务器被攻击之后
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net Web窗口页属性
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET/C# 使用反射注册事件
  • .netcore如何运行环境安装到Linux服务器
  • .net快速开发框架源码分享
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .Net小白的大学四年,内含面经
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @selector(..)警告提示
  • [ C++ ] STL---stack与queue
  • [ linux ] linux 命令英文全称及解释
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记