五种不寻常的身份验证绕过技术

身份验证绕过漏洞是现代web应用程序中普遍存在的漏洞,也是隐藏最深很难被发现的漏洞。

为此安全防护人员不断在开发新的认证方法,保障组织的网络安全。尽管单点登录(SSO)等工具通常是对旧的登录用户方式的改进,但这些技术仍然可能包含严重的漏洞。无论是业务逻辑错误还是其他软件漏洞,都需要专业人员来分析其中的复杂性。

我们将在本文中介绍五种真实的身份验证绕过技术。

 

技术1——刷新令牌终端配置错误

在这种情况下,一旦用户使用有效凭证登录到应用程序,它就会创建一个在应用程序其他地方使用的承载身份验证令牌。该认证令牌在一段时间后过期。就在过期之前,应用程序在终端/refresh/tokenlogin中向后端服务器发送了一个请求,该请求在标头和HTTP主体部分的用户名参数中包含有效的身份验证令牌。

进一步的测试表明,删除请求上的Authorization标头并更改HTTP主体上的用户名参数将为提供的用户名创建一个新的有效令牌。利用此漏洞,拥有匿名配置文件的攻击者可以通过提供用户名为任何用户生成身份验证令牌。

1665667564_634811ec7f462dc492c7a.png!small

技术2 ——SSO配置不正确

大多数应用程序都使用SSO系统,因为与处理许多身份验证门户相比,SSO系统更容易安全管理。但是简单地使用SSO并不能自动保护系统,因为SSO的配置也应得到保护。

现在,一个应用程序使用Microsoft SSO系统进行身份验证。当访问internal.redacted.com URL时,web浏览器会重定向到单点登录系统:

1665667600_634812104e4774d75f1d0.png!small

乍一看,它似乎是安全的,但对后端请求的分析显示,应用程序在重定向响应上返回了异常大的内容长度(超过40000字节)

1665667657_63481249099210890c6c8.png!small

为什么应用程序要这样做呢?当然是配置错误。在将用户发送到SSO的重定向时,应用程序向每个请求泄露了其内部响应。因此,可以篡改响应,将302 Found头更改为200 OK,并删除整个Location标头,从而获得对整个应用程序的访问。

1665667683_634812633ae2a628e82ed.png!small

此外,可以通过在Burp Suite中添加Match & Replace规则来自动删除标题并自动更改值,从而实现这个过程的自动化。

1665667740_6348129c13070c8db44e5.png!small

技术3——基于CMS的访问漏洞

内容管理系统(CMS),如WordPress、Drupal和Hubspot也需要进行安全配置,以免它们在使用中中引入漏洞。

在发现的一个示例中,在一个内部应用程序中使用了一个流行的CMS平台Liferay。该应用程序只有一个不需要身份验证就可以访问的登录页面,所有其他页面都在应用程序UI中受到限制。

对于那些不熟悉Liferay的人来说,CMS为应用程序工作流使用了portlet,它的参数是数字中的p_p_id。对于该应用程序,可以通过将参数值更改为58来访问登录portlet。在正常的登录页面中,只有登录表单是可访问的。然而,通过直接访问portlet,可以达到Create Account功能,然后在不需要适当的授权情况下就可以进行自注册并访问内部应用程序。

1665667762_634812b21f51d1731e610.png!small

请注意,虽然Liferay以前使用过这个工作流,但它的最新版本使用了portlet名称而不是数字ID。不过,也可以通过更改名称来访问其他portlet。

技术4 ——JWT令牌的使用

JWT令牌或JSON web令牌,在新的web应用程序中很流行。但是,虽然它们默认具有安全机制,但后端服务器配置也应该是安全的。

我的一项任务是在他们的内部应用程序中使用SSO身份验证。当直接访问时,应用程序将用户重定向到Microsoft SSO web页面。到目前为止,一切顺利。

然而,一些JS文件不需要身份验证就可以访问。测试显示,该应用程序使用了安全登录后通过Microsoft SSO系统发送的JWT令牌。在后端机制上,存在一个安全错误配置,即不检查是否为特定的应用程序生成了JWT令牌。相反,它接受任何具有有效签名的JWT令牌。因此,使用来自微软网站的JWT令牌示例如下:

1665667802_634812da73d015c308827.png!small

在通用值内:

1665667828_634812f458c007ced624a.png!small

有可能访问内部终端,泄露公司数据。

1665667851_6348130bd78b95db394da.png!small

技术5——将身份验证类型更改为Null

在此情况中,应用程序通过 base64 编码的 XML 请求向 HTTP 发布数据上发送所有请求。在登录机制上,它将用户名作为参数别名发送,将密码作为scode发送。scode 参数内的值已进行哈希处理。分析显示,它使用了所提供密码值的 md5 值。请求中还有另一个有趣的标志:scode 有一个属性,其类型值为 2。

1665667876_634813242f4d6c359bb86.png!small

我尝试将该值赋值为1,它将接受明文密码。成功了!因此,在明文值中使用暴力攻击中是可能的。没什么大不了的,但这标志着我走对了路。把它赋值给空值怎么样?或者其他值,如-1、0或9999999999?大多数都返回了除0之外的错误代码。我用属性0做了几次尝试,但没有成功,直到我将密码值作为空值发送出去。

1665667900_6348133caadb9762eced0.png!small

我意识到只需提供用户名和密码即可访问任何帐户。事实证明,这是一个很大的错误。

总结

复杂的身份验证机制可能成为攻击者使用的最具隐蔽性的攻击手段,特别是在容易出现业务逻辑漏洞的应用程序上。因为自动扫描器大多无法进入这类漏洞,所以仍然需要手工来找到它们。鉴于现代软件环境的复杂性,没有任何一个安全研究人员能够发现所有可能的漏洞或攻击载体。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

 大厂面试题

 

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击) 

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud Gateway 集成 Nacos、Knife4j

目录 1、gateway网关配置1.1 pom 配置2.2 配置文件1.3 yaml 配置 2、其他服务配置2.1 pom 配置2.2 配置文件2.3 yaml 配置 3、界面访问4、其他 官方文档地址:Spring Cloud Gateway集成Knife4j 官方完整源码:https://gitee.com/xiaoym/swagger-bootstrap-…

景源畅信电商:抖音开店步骤是什么?

随着社交媒体的兴起,抖音已经成为一个不可忽视的电商平台。许多人都希望通过抖音开店来实现自己的创业梦想。那么,抖音开店的具体步骤是什么呢?接下来,我们将详细阐述这一问题。 一、明确回答问题抖音开店的步骤主要包括:注册账号…

探索标准差与方差的奥秘

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、标准差与方差的基础理解 代码案例 二、标准差与方差的计算方法 方差的计算 标准差的…

SaltStack

SaltStack 官方文档 1.简介 作用:批量处理状态管理(配置管理)事件驱动(通过事件触发操作)管理私有云/公有云 yum仓库:http://repo.saltstack.com 安装1.master和minionrpm --import https://repo.saltproj…

【前端学习——react坑】useState使用

问题 使用useState 时,例如 const [selectedId, setSelectedId] useState([false,true,false]);这样直接利用,无法引发使用selectedId状态的组件的变化,但是selectedId是修改了的 let tempselectedId;temp[toggledId]selectedId[toggledId…

A2B V2.0协议学习笔记(非正式版本)

一、说明 A2B全称是 Automotive Audio Bus 汽车音频总线,主要是解决传统音频总线线多、线重、成本贵等问题。 A2B V2.0总线相对V1.0主要变化点: 速率提升,高达98.304Mbps,全双工模式 编码方式,由之前的曼彻斯特编码变为QPSK(正交相移键控)编码,每个符合2bit数据,因此…

【busybox记录】【shell指令】mkdir

目录 内容来源: 【GUN】【mkdir】指令介绍 【busybox】【mkdir】指令介绍 【linux】【mkdir】指令介绍 使用示例: 创建文件夹 - 默认 创建文件夹 - 创建的同时指定文件权限 创建文件夹 - 指定多级文件路径,如果路径不存在&#xff0c…

HAL库使用FreeRTOS实时操作系统时配置时基源(TimeBase Source)

需要另外的定时器,用systic的时候生成项目会有警告 https://blog.51cto.com/u_16213579/10967728

k8s部署calico遇到的问题

kubernetes安装calico calico官网 环境:centos7.9,calico 3.23,kuberadm 1.26 问题1:执行kubectl create -f calico.yml后报错如下 error: resource mapping not found for name: “tigera-operator” namespace: “” from “…

20212313 2023-2024-2 《移动平台开发与实践》第5次作业

20212313 2023-2024-2 《移动平台开发与实践》第5次作业 1.实验内容 设计并开发一个地图应用系统。 该实验需提前申请百度API Key,调用接口实现百度地图的定位功能、地图添加覆盖物和显示文本信息。 2.实验过程 2.1 获取SHA1 (1)打开控制台…

【全开源】景区手绘地图导览系统源码(ThinkPHP+FastAdmin)

一款基于ThinkPHPFastAdmin开发多地图手绘地图导览系统(仅支持H5),景区升4A5A必备系统,高级版支持全景。 ​打造个性化游览新体验 一、引言:景区导览系统的革新 在旅游业蓬勃发展的今天,景区导览系统成为了提升游客体验的关键。…

Python学习---基于HTTP的服务端基础框架搭建案例

整体功能: 1 创建框架构建相关的文件夹 2 创建app,模块文件 3 在 app模块文件中创建application函数(用于处理请求) 4 将request_handler()中的处理逻辑交由app模块的application函数完成 5 app模块的 application函数返回响应报文 6 在application 文件夹中创建一个…

基于GO 写的一款 GUI 工具,M3u8视频下载播放器-飞鸟视频助手

M3u8视频下载播放器-飞鸟视频助手 M3u8视频飞鸟视频助手使用m3u8下载m3u8 本地播放 软件下载地址m3u8嗅探 M3u8视频 M3u8视频格式是为网络视频播放设计,视频网站多数采用 m3u8格式。如腾讯,爱奇艺等网站。 m3u8和 mp4的区别: 一个 mp4是一个…

NSSCTF-Web题目4

[SWPUCTF 2021 新生赛]hardrce 1、题目 2、知识点 rce:远程代码执行、url取反编码 3、解题思路 打开题目 出现一段代码,审计源代码 题目需要我们通过get方式输入变量wllm的值 但是变量的值被过滤了,不能输入字母和\t、\n等值 所以我们需…

JavaWeb基础(一)-IO操作

Java I/O工作机制: 注:简要笔记,示例代码可能较少,甚至没有。 1、Java 的 I/O 类库的基本架构。 ​ Java 的 I/O 操作类在包 java.io 下,大概有将近80个类,这些类大概可以分为如下四组。 基于字节操作的…

new CCDIKSolver( OOI.kira, iks ); // 创建逆运动学求解器

demo案例 new CCDIKSolver(OOI.kira, iks); 在使用某个特定的库或框架来创建一个逆运动学(Inverse Kinematics, IK)求解器实例。逆运动学在机器人学、动画和计算机图形学等领域中非常重要,它用于根据期望的末端执行器(如机器人的…

SpringMVC 数据映射VC

从 view 层发送请求到Controller,在Controller中获取参数: 在不输入值时会报400,参数错误 在不输入值时num默认为null 没有找到对应标签名称叫nums的,输入任何值时都报400 设置required默认值为false,即使表单没有nums…

山东大学软件学院数据库实验1-9(全部)

目录 前言 实验代码 实验一 1-1 1-2 1-3 1-4 1-5 1-6 实验二 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 实验三 3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 3-9 3-10 实验四 4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 4-10 实验五 5-1…

C# 数组/集合排序

一&#xff1a;基础类型集合排序 /// <summary> /// 排序 /// </summary> /// <param name"isReverse">顺序是否取反</param> public static void Sort<T>(this IList<T> array, bool isReverse false)where T : IComparable …

【SPSS】基于因子分析法对水果茶调查问卷进行分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…