做网站搜爬闪重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司
2026/1/17 17:09:50 网站建设 项目流程
做网站搜爬闪,重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司,仿制别人网站,个人网站可以做商业吗密码重置漏洞挖掘指南#xff1a;从原理到实战的完整路径 前言#xff1a; 密码重置功能是Web应用中最常见也最核心的环节之一#xff0c;它直接关系到用户账户的安全。正因为其普遍性和高敏感性#xff0c;一个细微的逻辑缺陷都可能导致整个账户体系的沦陷。密码重置漏洞…密码重置漏洞挖掘指南从原理到实战的完整路径前言密码重置功能是Web应用中最常见也最核心的环节之一它直接关系到用户账户的安全。正因为其普遍性和高敏感性一个细微的逻辑缺陷都可能导致整个账户体系的沦陷。密码重置漏洞核心思路为站在攻击者的角度尝试劫持任意用户的密码重置流程整个过程可以概括为以下几个关键步骤1、初始化重置为目标用户受害者发起密码重置请求。2、拦截/篡改凭证获取或控制用于身份验证的重置凭证如Token、验证码、USERID等。3、接管流程将本应发送给目标用户的凭证转发或引导至攻击者控制。4、完成重置利用获取到的凭证最终修改目标用户的密码。下文将围绕密码重置漏洞常见类型与挖掘思路展开讨论。1、客户端状态校验不全客户端响应篡改是逻辑漏洞的常见形式。应用程序将本应存储在服务器端、并由服务器端完全掌控和校验的关键业务状态如“是否已通过身份验证”错误地委托给了不可信的客户端如用户的浏览器或APP来存储和维护。当客户端将这些状态值返回给服务器时没有在服务器端对其进行二次验证或溯源。1.1漏洞利用进入忘记密码任意输入验证码抓包修改返回包中的参数状态值。比如常见的code改为0false改为true等等。下来正常输入新密码点击下一步抓包继续修改响应值成功重置密码。1.2挖掘思路1寻找目标场景前台忘记密码找回账号等诸如此类的功能。如前台没有对应忘记密码功能可以从前端js中提取接口进行测试。2测试服务端是否缺少校验通过修改客户端返回的状态值例如将 “verified”: false 改为 “verified”: true看服务器是否仅依据此值判断步骤是否完成。2、步骤分离与校验不足密码重置往往涉及多个步骤如身份验证、Token验证、设置新密码如果步骤间状态校验不足可能绕过关键验证。2.1 漏洞利用本地搭建Dedecms版本5.7创建账户test1以及test2。登录test1账户随后构建payloadid修改为要修改的账户的id发送请求获取key成功获取key值后即可修改目标账户密码。2.2挖掘思路1测试步骤间状态关联性校验尝试直接访问重置流程的各个步骤的URL例如 /reset/step2、/reset/step3而不完成其前置步骤。观察系统是否允许直接跳转至后续步骤并在后续步骤的请求中缺乏对前置步骤已完成的验证例如缺少一个能证明你已通过第一步验证的Token或Session标识。2操作参数以便越权至其他用户分析每一步请求中用于标识状态或用户的参数如 user_id、temp_token、session_id检查其是否可预测并尝试修改这些参数例如递增或递减user_id以查看是否能切换到其他用户的重置流程随后检查其是否在步骤间保持一致第一步生成的Token或Session标识是否在第二步、第三步的请求中被正确校验并与当前用户绑定。3、鉴权不严使用简单可预测的用户标识符许多系统在对用户身份进行认证时会使用简单的参数作为用户的唯一标识缺少鉴权而这类标识容易被攻击者预测。例如某些系统直接将USERID作为用户密码重置时的标识攻击者只需枚举其他用户的USERID即可重置其他用户密码。3.1 漏洞利用针对某购物网站进行包监听时发现某接口的响应如下在响应体中包含如下参数“showResetPassword”: false,“showModifyEmails”: false参数值表示用户角色禁用了密码重置和电子邮件修改选项。在burp中对该流量包进行拦截并修改响应包。刷新页面后会发现两个新选项此处后端接口返回 JSON 字段 “showResetPassword”: false 仅用于前端 UI 决策未在后端任何鉴权逻辑中二次校验。攻击者通过篡改响应包为 “showResetPassword”: true即可让前端渲染出重置密码按钮。随后对所拥有的账户进行密码重置修改系统返回200并提供了有效密码重置链接。访问后发现密码重置成功拦截密码重置接口包发现请求中包括用户的数字ID其请求体仅包含{ “userId”: 9438868, “resetAccessKey”: false }没有其他的鉴权参数。该端点未检查当前会话是否具备对 userId 的操作权限也未校验当前用户权限。重新抓包将USERID修改为另一个账户USERID密码修改成功并成功登陆。系统采用可预测、单调递增标识符使用连续数字 userId此时攻击者只需遍历整数区间即可批量枚举有效用户重置其他用户的密码。3.2 挖掘思路1收集令牌样本通过直接请求找到应用程序中生成令牌的功能点如密码重置、邮箱验证、会话ID分配并反复触发这些功能。应用程序在日志、调试页面或错误信息中也会意外泄露其他用户的令牌。2分析模式与结构拿到样本后首先观察令牌由哪些字符组成仅数字数字大写字母数字大小写字母是否包含特殊字符等。观察编码方式如Base64、Hex、Base36。随后尝试解码对令牌进行常见的解码操作。解码后的数据可能显示出更明显的模式如时间戳、序列号或特定结构。最后分割对比将多个样本放在一起对比每一位字符的变化情况。寻找其中固定不变的部分和规律变化的部分。3 破解生成算法如果令牌是纯数字且样本值接近当前时间可能是时间戳10位或13位或时间戳的简单变换如乘以一个系数你可以记录获取令牌的时间与令牌值进行比对如果令牌是32位或64位的十六进制字符串可能是MD5或SHA-256等哈希值也可以尝试在前端源码中下断点去破解生成密码的算法等。另外可以尝试猜测其原始输入如用户ID 时间戳、邮箱 固定盐值并进行哈希比对。如果你能获得足够多的连续输出就有可能推断出内部状态并预测后续值。4、账号与校验参数未绑定密码重置流程通常需要向用户发送验证凭证如Token、验证码如果接收端参数由客户端提供且可篡改则可能导致凭证发送至攻击者控制的地址下面将结合案例进行说明4.1 漏洞利用案例一接收端可篡改请求包中包含接收端参数可将凭证发至指定接收端。密码重置页面输入任意普通账号选择邮箱方式找回密码。在身份验证页面点击获取短信验证码拦截请求发现接收验证码的邮箱为请求包中的参数而此参数可控直接篡改为攻击者的邮箱此时攻击者成功接收邮箱验证码。提交验证码后抓包修改其中邮箱为获取验证码的邮箱。此时仅校验了验证码与邮箱是否绑定只要输入正确的验证码即可通过验证。下来正常执行 3、4 步即可成功重置该账号的密码。此处漏洞形成的主要原因就是服务器未绑定实际要重置得账号和验证码导致输入其他用户邮箱正确的验证码也可以重置当前用户的密码。案例2验证码转发在测试任意密码重置时可以尝试在关键参数后面添加多个参数转发验证码到攻击者。攻击者收到验证码后直接填写验证码即可完整密码重置修改受害人密码。案例三利用校验正确验证码或者其他校验获取到正确凭证后在凭证有效期内实现重置其他用户密码在密码重置流程的关键步骤获取验证码、校验验证码生成凭证、使用凭证重置密码中使用重置密码凭证执行最终重置操作时服务端没有严格校验和绑定令牌与最初申请者的身份关系仅仅校验令牌是否失效或者是否使用。导致攻击者可以利用此缺陷将本应属于用户A的权限“转移”或“应用”到用户B身上从而实现越权操作。当用户已经验证过验证码在正确验证有效期内攻击者同时做重置密码操作此时可以利用令牌未失效的情况下实现任意密码重置。输入正确验证码后会触发校验接口获取重置当前密码的凭证。另一个账号同样按以上方式操作利用获取到正确凭证的间隙。回到攻击账号输入新密码抓包。看到其中有控制要重置账号密码的参数修改此参数为受害人的参数即可重置其他用户的密码。4.2 挖掘思路1还原正常的密码重置流程记录关键步骤通常包括输入用户名/邮箱/手机号、发送验证码、输入验证码、设置新密码等。随后拦截和分析请求使用工具拦截每一个步骤的HTTP请求仔细观察请求参数、响应内容。最后注意接收端如何被指定在发送验证码的请求中系统是直接从数据库查询与账号绑定的接收端还是通过客户端传递的参数来指定。2识别接收端参数在拦截的请求中仔细寻找任何可能与接收端相关的参数。这些参数可能是直接的也可能是间接的。直接参数phone, mobile, phoneNumber,email, mail,to, receiver等间接参数user_id, uid, idusername, user_name, login_name,account等3测试参数的可篡改性发现可疑参数后尝试篡改其值直接替换如果参数直接指定了接收端例如 phone13333333333尝试将其修改为你自己控制的接收端例如你的手机号 phone你的手机号然后放行请求观察验证码是否发送到了你的设备。间接关联如果参数是用户标识例如 user_nametarget_user尝试将其修改为另一个你控制账户的用户名例如 user_nameattacker。系统可能会将验证码发送到 attacker 账户绑定的手机/邮箱而你正好能访问这个接收端。参数污染尝试添加多个相同的参数例如 phonevictim_phonephoneattacker_phone观察系统如何处理多个值。4测试步骤间的关联性缺失许多密码重置功能分多个步骤。测试在不同步骤中系统是否正确地关联了用户身份和接收端例如你输入目标用户名userNametarget_user系统确认用户存在随后拦截发送验证码的请求该请求中可能有一个参数如 user_name用于指定从哪个用户获取绑定手机号。尝试将其修改为攻击者的用户名user_nameattacker。如果系统没有检查这个 user_name 是否与第一步的 userName 一致就可能会将验证码发送到攻击者绑定的手机号上。5测试验证码与接收端的绑定校验在提交验证码和设置新密码的阶段会再次校验验证码与目标用户是否匹配可以尝试用接收到的验证码去重置目标用户的密码。如果成功说明系统只验证验证码本身的有效性而没有校验该验证码是由哪个用户请求、发送至哪个接收端的就会存在严重逻辑缺陷。学习资源如果你是也准备转行学习网络安全黑客或者正在学习这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你知识库由360智榜样学习中心独家打造出品旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力熟练掌握基础攻防到深度对抗。读者福利 |CSDN大礼包《网络安全入门进阶学习资源包》免费分享安全链接放心点击1、知识库价值深度 本知识库超越常规工具手册深入剖析攻击技术的底层原理与高级防御策略并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等提供了独到的技术视角和实战验证过的对抗方案。广度 面向企业安全建设的核心场景渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点是应对复杂攻防挑战的实用指南。实战性 知识库内容源于真实攻防对抗和大型演练实践通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。2、 部分核心内容展示360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。内容组织紧密结合攻防场景辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合是你学习过程中好帮手。1、网络安全意识2、Linux操作系统3、WEB架构基础与HTTP协议4、Web渗透测试5、渗透测试案例分享6、渗透测试实战技巧7、攻防对战实战8、CTF之MISC实战讲解3、适合学习的人群‌一、基础适配人群‌‌零基础转型者‌适合计算机零基础但愿意系统学习的人群资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌‌开发/运维人员‌具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能实现职业方向拓展‌或者转行就业‌应届毕业生‌计算机相关专业学生可通过资料构建完整的网络安全知识体系缩短企业用人适应期‌‌二、能力提升适配‌1、‌技术爱好者‌适合对攻防技术有强烈兴趣希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌2、安全从业者‌帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌3、‌合规需求者‌包含等保规范、安全策略制定等内容适合需要应对合规审计的企业人员‌因篇幅有限仅展示部分资料完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】‌因篇幅有限仅展示部分资料完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】文章来自网上侵权请联系博主

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询