首页 > 其他分享 >五种不寻常的身份验证绕过技术

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

时间:2024-05-30 16:30:23浏览次数:21  
标签:网络安全 令牌 身份验证 应用程序 漏洞 SSO 五种 绕过

身份验证绕过漏洞是现代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大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击) 

特别声明:

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

标签:网络安全,令牌,身份验证,应用程序,漏洞,SSO,五种,绕过
From: https://blog.csdn.net/2401_84488651/article/details/139290174

相关文章

  • 一次绕过waf进行xss的经历
    今天室友遇到一个好玩的网站,下面是一些尝试绕过Waf进行XSS的记录。首先该网站没有对左右尖号和单双引号做任何过滤或转义。且有未知的waf或者其他阻止恶意访问的手段。 首先我的访问为login.asp?f=1时候,页面关键源码为可能是表示登录次数的一个东西?(猜测)现在我们知道的......
  • ORACLE 身份验证的几种方式
    1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。windows:sqlnet.ora文件为空时采用Oracle密码文件验证SQLNET.AUTHENTICATION_SERVICES=(NTS)基于操作系统验证;SQLNET.AUTHENTICATION_SER......
  • Java 五种内部类演示及底层原理详解
    内部类什么是内部类在A类的内部定义B类,B类就被称为内部类发动机类单独存在没有意义发动机为独立个体可以在外部其他类里创建内部类的对象去调用方法类的五大成员属性方法构造方法代码块内部类内部类的访问特点内部类可以直接访问外部类的成员,包括私有外部类要......
  • AJ-Report 认证绕过与远程代码执行漏洞(CNVD-2024-15077)
    AJ-Report是全开源的一个BI平台。在其1.4.0版本及以前,存在一处认证绕过漏洞,攻击者利用该漏洞可以绕过权限校验并执行任意代码。补丁对比方法一从docker拖出代码,去gitee下载发行版,便于对比编译后的class。方法二查看git的commit记录,可以直接看到修改了哪些内容!后面要去学习......
  • 金和OA认证绕过
    https://docs.projectdiscovery.io/templates/reference/matchershttps://furina.org.cn/2023/10/05/Nuclei/https://t.zsxq.com/bIoTf认证绕过+sql注入pocGET/C6/JHSoft.Web.WorkFlat/RssModulesHttp.aspx/?interfaceID=1;WAITFOR%20DELAY%20'0:0:3'--nucleiid:......
  • 创建一个配置为信任所有HTTPS连接的RestTemplate实例,不验证服务器的SSL证书。这个示
    这个配置类使用背景:可参考博客:springboot使用restTemplate发送https请求忽略ssl证书https://jsonll.blog.csdn.net/article/details/129191580?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-1......
  • .NET 某和OA办公系统全局绕过漏洞分析
    转自先知社区作者:dot.Net安全矩阵原文链接:.NET某和OA办公系统全局绕过漏洞分析-先知社区0x01前言某和OA协同办公管理系统C6软件共有20多个应用模块,160多个应用子模块,从功能型的协同办公平台上升到管理型协同管理平台,并不断的更新完善,全面支撑企业发展。从此OAC6版本外......
  • 一例APP绕过root检测解密
    一例APP绕过root检测解密前言最近在分析一款app时遇见了root检测,数据包加密,花了时间简单研究了一下,记录下学习的过程。 抛出问题打开app发现提示检测到设备为root设备,闪退。能看到提示,推测应该是java层的检测。拖进jadx发现是加固的。通过frida绕过检测java层常见......
  • SRC | 记一次登录绕过漏洞挖掘
    在对某SRC资产收集过程中发现以下登录页面:抓包看看是否可以绕过登录限制。在登录处输入任意用户名密码,以及正确的验证码:通过抓包发现验证码和用户名密码是分包验证,所以我们将第一步的验证码验证请求包通过bp拦截响应包:将验证成功的响应包复制:{ "errorCode":"00000",......
  • 客户端身份验证
    当客户端应用程序连接到数据库服务器时,它会指定要以哪个PostgreSQL数据库用户名进行连接,这与以特定用户身份登录Unix计算机的方式非常相似。在SQL环境中,活动数据库用户名决定了对数据库对象的访问权限身份验证是数据库服务器建立客户端身份的过程,并通过扩展确定客户端应用程......