鉴源实验室 | 系统逻辑漏洞挖掘实践

news2025/6/11 8:25:09

作者 | 林海文 上海控安可信软件创新研究院汽车网络安全组

来源 | 鉴源实验室

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

01

前 言

当谈及安全测试时,逻辑漏洞挖掘一直是一个备受关注的话题,它与传统的安全漏洞(如SQL注入、XSS、CSRF)不同,无法通过WAF、杀软等安全系统的简单扫描来检测和解决。这类漏洞往往涉及到权限控制和校验方面的设计问题,通常在系统开发阶段未充分考虑相关功能的安全性。

举例来说,攻击者可以利用这些逻辑漏洞,通过利用程序员在设计中的疏忽,实施交易数据篡改、敏感信息盗取以及资产窃取等操作。这种类型的漏洞潜在危害极大,可能导致企业遭受资产损失和声誉受损的风险,而传统的安全防御设备和措施往往无法有效应对这些问题,显得力不从心。

02

挖掘思路总结(部分)

当提到逻辑漏洞时,有各种各样的漏洞类型。其中,账户、验证码、越权这三个模块是最常见且相对较容易被攻击的部分。下面,我们可以看一下这三个模块中常见的挖洞姿势。

9201.jpg

03

一些挖掘实例

3.1 验证码

3.1.1 修改返回包绕过

这种方法基于返回的状态码来验证用户凭证的正确性,通常情况下,正确的验证码返回状态码为1,错误则为0。因此,攻击者可以通过抓取响应包,并将错误的状态码修改为1,从而成功绕过验证。

找到系统登录界面修改账户密码的地方,采用邮箱修改密码;选择发送验证码后,随机输入一串验证码,发送数据,然后抓包。请求包如下:

9202.png

9203.png

再拦截一下响应包。如下图,可以直接看到“data:false”进行了一个判断。修改false为true后放包:

9204.png

成功绕过,直接跳转到修改密码处:

9205.png

填入新的密码,点击确认,修改成功。

9206.png

3.1.2 验证码传递特殊参数绕过

验证码安全控制的失效问题。通常,常见的系统安全措施包括设置6位数验证码,有效期为30分钟或更短,验证失败6次后验证码会直接失效。然而,有些系统采用标志位来控制验证码的状态和生命周期。当标志位为1时,系统将验证码标记为失效,用户无法再使用该验证码来修改密码;而当标志位为0时,系统将验证码标记为有效,用户可以继续完成密码修改流程。

同样的,在个人中心处发现存在修改密码的功能点,仍旧是通过邮箱重置密码。点击“获取验证码”:

9207.png

等待6分钟后输入正确的验证码并抓包(此处6分钟为验证码过期时间),响应报文提示验证码已经失效。请求及响应包如下:

9208.png

将此处sourceFlag标注为u从1修改为0,发送报文,看到右侧响应,成功绕过时效性以及错误次数的限制:

9209.png

3.2 账户

3.2.1 遍历猜解已有账号

这种漏洞可能存在于用户注册、密码重置或验证码验证流程中。在注册过程中,如果系统内部已存在相同账户,通常无法成功注册。对于密码重置策略不够安全的网站,比如允许用户通过相对简单的信息(如用户名、电子邮件地址或手机号码)来重置密码,攻击者可以通过遍历或猜测这些信息来找到有效的用户账号。此外,如果网站在验证码验证过程中没有足够的限制或防护机制,攻击者可以尝试多次提交验证码,通过遍历可能的验证码值来找到有效的组合。

同样的,在个人中心处发现存在修改密码的功能点,仍旧是通过邮箱重置密码。点击“获取验证码”:

91013.png

等待6分钟后输入正确的验证码并抓包(此处6分钟为验证码过期时间),响应报文提示验证码已经失效。请求及响应包如下:

92011.png

修改email为不存在的用户邮箱,发送报文得到response,提示当前用户不存在。那么可以采用常见用户遍历的方式进行猜解:

92012.png

3.3 越权

3.3.1 越权修改账户密码

网站未能有效验证和控制用户在修改邮箱地址时的权限。攻击者可以绕过身份验证,访问其他用户的邮箱地址修改页面,并进行未经授权的邮箱地址修改。这表明在系统设计阶段可能没有进行全面的用户身份验证,或者存在身份验证方面的漏洞,因此可能导致任意账户密码的重置。

在个人中心修改账户密码的地方,采用邮箱修改密码;选择发送验证码后,输入正确的验证码,点击下一步,成功验证进到修改新密码这一步。

92013.png

92014.png

输入新密码,发送数据,然后抓包。请求包如下:

92015.png

修改email地址为admin@*.com(admin用户的id),将拦截到的报文给发送出去:

92016.png

成功修改admin账户的密码:

92020.png

使用admin用户的新密码登录成功:

92021.png

3.3.2 越权修改其他用户密码

在正常情况下,当用户试图修改他们自己的密码时,系统应该首先验证用户的身份,以确保他们有权访问和修改他们自己的帐户信息。身份验证通常包括要求用户提供当前密码或其他身份验证凭证。然而,在某些情况下,系统未充分执行身份验证检查,例如将 "id" 参数设置为目标用户的帐户标识。这使得攻击者可以通过篡改请求中的 "id" 参数来伪装成其他用户的帐户,而无需提供正确的身份验证凭证。

利用已知账户登录进系统,选择更改登录口令功能,修改新口令点击确定,抓包如下:

92022.png

burp拦截报文,可发现它的Id字段可控:

92023.png

修改id为2,根据服务器回应的报文,成功篡改id为2的用户的密码:

92024.png

3.3.3 越权登陆

通常情况下,登录过程应依赖于用户提供的凭据,例如用户名和密码。然而,在某些系统中,存在由客户端提供的参数,如certSn,用于标识用户会话。攻击者可以修改certSn参数以绕过授权检查,导致服务器未能正确验证会话是否属于请求的用户。这种漏洞使得攻击者能够手动修改certSn的数值,从而进行账户猜解攻击。

插入一张key(非RA管理员),点击登录,抓包如下:

92025.png

观察到其存在Certsn参数:

92026.png

可增加或者减小当前数值来修改该参数,成功登录RA管理员账号:

92027.png

92028.png

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

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

相关文章

SSM整合(细节拉满)|将Mybatis、Spring、SpringMVC三个框架整合起来,通过一个demo来练习

环境要求 环境: IDEA MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识; 数据库环境 创建一个存放书籍数据的数据库表,并插入一些示例数据 SSM整合 新建一个空的M…

网安须知|什么是护网行动?什么是红蓝对抗?

01 什么是护网行动 护网行动是以公安部牵头的,用以评估企事业单位的网络安全的活动。 具体实践中,公安部会组织攻防两方,进攻方会在一个月内对防守方发动网络攻击,检测出防守方(企事业单位)存在的安全漏洞…

深入学习 Redis - 分布式锁底层实现原理,以及实际应用

目录 一、Redis 分布式锁 1.1、什么是分布式锁 1.2、分布式锁的基础实现 1.2.1、引入场景 1.2.2、基础实现思想 1.2.3、引入 setnx 1.3、引入过期时间 1.4、引入校验 id 1.5、引入 lua 脚本 1.5.1、引入 lua 脚本的原因 1.5.2、lua 脚本介绍 1.6、过期时间续约问题&…

OpenMMLab MMYOLO目标检测应用示例与常见问题(三)

基于MMYOLO的电离图实时目标检测基准 数据集 数字电离图是获取实时电离层信息的最重要方式。电离层结构检测对于准确提取电离层关键参数具有重要的研究意义。 本研究利用中国科学院在海南、武汉和怀来获得的4311张不同季节的电离图建立数据集。使用labelme手动注释包括 Laye…

实现高并发内存池(C++)

什么是内存池 池化技术 所谓“池化技术”,就是程序先向系统申请过量的资源,然后自己管理以备不时之需。之所以要申请过量的资源,是因为每次申请该资源都有较大的开销,不如提前申请好,这样使用时就会变得非常快捷&…

2023年华数杯数学建模C题母亲身心健康对婴儿成长的影响解题全过程文档及程序

2023年华数杯全国大学生数学建模 C题 母亲身心健康对婴儿成长的影响 原题再现: 母亲是婴儿生命中最重要的人之一,她不仅为婴儿提供营养物质和身体保护,还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况,如抑郁、焦虑、…

同为科技(TOWE)专业防雷滤波桌面PDU超级插座

2023年第19届杭州亚运会开幕在即,相较于以往,本届杭州亚运会的一大看点就是电竞项目将首次以正式比赛项目的身份亮相亚运赛场,让更多受众能够领略电竞的魅力。当前社会,电竞作为一种新兴的娱乐、社交方式,让很多年轻人…

Feign实战-Springboot集成OpenFeign Demo以及参数详解

最近整理一下微服务的文章,先拿一直用的OpenFeign开刀 思考:微服务之间如何方便优雅的实现服务间的远程调用 一、说说openFeign是什么吧? 说到这个,那不得不先说说RPC 1.什么是RPC RPC 全称是 Remote Procedure Call &#x…

程序员还在为兼职接单发愁,快看看这几个宝藏平台吧!!!

在当今经济发展压力巨大的背景下,总有人还在与生活顽强对抗,拿什么和生活对抗嘞,那当然只有马内咯,尤其是对于程序员而言,现在内卷严重,如果能做一点线上兼职搞点马内,那岂不美哉,如…

计算机毕业设计 基于SpringBoot餐厅点餐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

Android ANR问题触发机制

1 Anr类型 ​ Anr一般有四种类型。 1.1 input dispatching timeout ​ 主要时按键或触摸屏事件在5s内没有响应。这个时间在ActivityManagerService中定义。 C:\Users\wangjie\AppData\Local\Android\Sdk\sources\android-32\com\android\server\am\ActivityManagerService.…

嵌入式学习 - 用电控制电

目录 前言: 1、继电器 2、二极管 3、三极管 3.1 特殊的三极管-mos管 3.2 npn类型三极管 3.3 pnp类型三极管 3.4 三极管的放大特性 3.5 mos管和三极管的区别 前言: 计算机的工作的核心原理:用电去控制电。 所有的电子元件都有数据手册…

window隐私保护设置(win10)

window隐私保护设置(win10) 1、文件夹选项中,把隐私模块中关于快速访问的选项√去掉 2、个性化中开始模块根据需要关闭需要的选项,最后一个可以关闭任务栏应用历史记录 小尾巴~~ 只要有积累,就会有进步

Multispectral and hyperspectral image fusion in remote sensing: A survey

遥感中的多光谱和高光谱图像融合:一项调查 把融合方法分为:全色锐化、基于分解、基于机器学习;总结了常用数据集和性能评估指标;提出未解决的问题绘制指导方针。 针对这一任务,有叫多光谱与高光谱融合、高光谱超分辨率、高光谱锐化、超锐化 全色锐化相关方法 HS和MS图像…

牛客网Verilog刷题 | 快速入门-基础语法

1、VL1 四选一多路器 描述 制作一个四选一的多路选择器,要求输出定义上为线网类型 状态转换: d0 11 d1 10 d2 01 d3 00 信号示意图: 输入描述: 输入信号 d1,d2,d3,d4 sel 类型 wire 输出描述: 输出信号 mux_ou…

抖音seo优化排名源码搭建

抖音seo优化排名技术开发源码搭建: 思路:看上去比较简单,貌似使用 get、set 这两个 trap 就可以,但实际上并不是。实际上还需要实现 has, ownKeys , getOwnPropertyDescriptor 这些 trap,这样就能最大限度的限制私有属…

语义分割——灰度图像转伪彩色图像

目录 检验灰度图检验代码 灰度图转伪彩色图代码转换代码使用细则 示例转换结果总结 检验灰度图 制作语义分割数据集或用训练好模型测试图像时,得到的结果是灰度图像,如下: 检验代码 上面图像灰度值不是全是全为0,灰度范围在[0…

接口测试工具Postman使用实践

一、接口定义 软件不同部分之间的交互接口。通常就是所谓的API――应用程序编程接口,其表现的形式是源代码。 —— [ 百度百科 ] 我们常说的接口一般指两种: (1)API:应用程序编程接口。程序间的接口 (2…

Docker与Kubernetes集成以实现云原生应用程序:云原生在线教育平台

文章目录 项目概述项目架构项目步骤项目收益 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云计算 ✨文章内容:云原生在线教育平台 🤝希望作者的文…

【Zabbix】Zabbix结合WxPusher推送告警消息

WxPusher简单介绍 什么是WxPusher WxPusher (微信推送服务)是一个使用微信公众号作为通道的,实时信息推送平台,你可以通过调用API的方式,把信息推送到微信上,无需安装额外的软件,即可做到信息实时通知。 你可以使用W…