您的位置:首页 > 文旅 > 美景 > 常见逻辑漏洞复现合集(下)

常见逻辑漏洞复现合集(下)

2024/12/23 9:14:22 来源:https://blog.csdn.net/Y_main/article/details/139772229  浏览:    关键词:常见逻辑漏洞复现合集(下)

目录

阅读须知

测试准备

水平越权

测试场景

测试实操

测试总结

垂直越权

测试场景

测试实操

测试总结

暴力破解验证码

测试场景

测试实操

步骤 1- 设置请求参数

步骤 2-设置变体参数

开始测试

测试总结

阅读须知

本文的知识内容,仅供网络安全从业人员学习参考,用于已获得合法授权的网站测试,请勿用于其它用途。请勿使用本文中的工具、技术及资料,对任何未经授权的网站、系统进行测试,否则,所造成的直接或间接后果,均由您自行承担。

测试准备

本文不提供对应的靶场和环境,只提供对应的思路。

文中使用工具为:TangGo测试平台,也可以自行下载其他 HTTP抓包测试工具工具。

水平越权

测试场景

王老板找到你,称其网站似乎存在未知的问题,这个问题会导致部分人员的身份信息泄露,请你帮助寻找原因。他向你提供了登录账号(kebo)及其密码,请你获取账号(lucy)的个人信息。

测试实操

打开 HTTP抓包测试工具,点击右上角内置浏览器,在浏览器中访问王老板提供的网站,加载后为登录界面:

输入给定的账号(kebo)和密码(123456),点击登录后进入个人信息中心:

点击查看个人信息则可以看到完整的信息:

分析可知,点击查看个人信息后会进入人员信息页面,如果有信息泄露,则可能是该请求可被修改导致,测试如下:

在 HTTP抓包测试工具中,打开拦截开关,回到内置浏览器中,再次点击查看个人信息

发现请求信息中心存在“username=kobe”,其中 kobe 为我们当前的账号,如果修改为被测试账号是否能获得对应的信息呢?

把“username=kobe”修改为“username=lucy”,然后点击放行

点击放行后会返回一个响应数据,点击响应数据包中的页面浏览,可以看到已经返回了lucy的人员信息:

关闭拦截后回到内置浏览器查看:

至此成功拿到被测试人员的信息,找到了王老板所说的问题原因。

测试总结

测试漏洞:

越权访问漏洞(Insecure Direct Object References,IDOR)指的是应用程序在验证用户对资源或功能的访问权限时出现的漏洞。具体来说,这种漏洞允许攻击者直接访问应用程序中的对象(例如文件、数据库记录、URL等),而无需经过适当的身份验证或授权检查。越权漏洞一般又分为垂直越权漏洞和水平越权漏洞。

本文中的漏洞为水平越权漏洞。水平越权是指攻击者通过利用系统或应用程序中的逻辑错误,以获取其他用户相同权限级别下的资源或执行操作的漏洞。这种漏洞不涉及直接绕过权限验证机制,而是利用应用程序设计中的逻辑缺陷或错误,使攻击者能够访问其当前权限级别下其他用户的敏感数据或功能。

解决方案:

  1. 实施严格的访问控制机制: 应用程序应该在每次访问敏感资源或执行敏感操作时,都进行适当的身份验证和授权检查。这包括验证用户的身份,并检查其所请求的资源是否属于他们的权限范围之内。例如,只允许用户访问其自己的数据,而不是其他用户的数据。
  2. 最小化权限原则: 用户应该只被授予他们需要的最低权限来完成其工作。这意味着应用程序应该限制用户对敏感资源的访问,并仅授予他们执行其任务所需的最小权限。
  3. 使用安全的标识符: 对于每个资源或操作,都应使用安全的标识符来标识用户和资源。这样可以防止攻击者通过修改标识符来访问未经授权的资源。
  4. 安全开发实践: 开发人员应该接受安全意识培训,并使用安全的开发实践来编写和测试应用程序代码。这包括对用户输入进行验证和过滤,以防止恶意用户提交恶意数据。
  5. 监控和日志记录: 应该实施监控和日志记录机制,以便及时检测和响应越权访问尝试。这包括记录用户活动、异常事件和安全警报,并及时采取措施来应对潜在的安全威胁。

垂直越权

测试场景

李老板找到你,他说系统中的员工账号会被莫名奇妙删除,但是只有管理员才有账号删除权限,想请你帮忙找一下原因。李老板给了你一个邮箱(attacker@exploit***.net),用于注册账号进行测试,并且告诉了网站管理后台地址是“xxx.com/admin”。

测试实操

打开 HTTP抓包测试工具,打开右上角内置浏览器,在浏览器中访问李老板提供的网站,加载后是一个在线商城页面:

点击右上角注册页面,注册一个测试账号,邮箱地址为李老板提供(attacker@exploit***.net)。输入注册的用户名(test)、邮箱和密码后点击注册:

提交注册请求后回到邮箱,收到一条注册确认信息:

点击确认信息后跳转到登录界面,输入刚刚注册的账号(test)和密码登录:

登录成功后跳转到后台界面,该界面是一个更新邮箱地址的页面:

测试当前用户是否能访问管理者界面:根据李老板给我们提供的信息,管理员用户界面为“/admin”,替换 url 中的参数为“/admin”并访问该页面:


通过错误提示推测,只有账户的邮箱后缀地址为“@DontWannaCry.com

回到登录成功后的后台界面,该界面可以支持修改邮箱,修改邮箱后缀为“@DontWannaCry.com”:

修改完成后,刷新当前页面,发现页面多出一个选项(Admin panel):

点击该选项,此时页面跳转到新页面,此界面的 url 中包含“/admin”,可以确保为管理员后台界面,并且可以删除其他帐户:

至此成功复现到李老板说所的问题,该问题会导致普通用户获取管理员权限,可进行删除其他用户的操作。

测试总结

测试漏洞:

越权访问漏洞(Insecure Direct Object References,IDOR)指的是应用程序在验证用户对资源或功能的访问权限时出现的漏洞。具体来说,这种漏洞允许攻击者直接访问应用程序中的对象(例如文件、数据库记录、URL等),而无需经过适当的身份验证或授权检查。越权漏洞一般又分为垂直越权漏洞和水平越权漏洞。

本文中的漏洞为垂直越权漏洞。垂直越权漏洞是指攻击者利用系统或应用程序中存在的漏洞,通过绕过权限控制机制,获取比其当前权限更高级别的权限。这种漏洞通常涉及身份验证、会话管理或访问控制方面的缺陷,允许攻击者在系统中执行未授权的操作。

解决方案:

  1. 实施严格的访问控制机制: 应用程序应该在每次访问敏感资源或执行敏感操作时,都进行适当的身份验证和授权检查。这包括验证用户的身份,并检查其所请求的资源是否属于他们的权限范围之内。例如,只允许用户访问其自己的数据,而不是其他用户的数据。
  2. 最小化权限原则: 用户应该只被授予他们需要的最低权限来完成其工作。这意味着应用程序应该限制用户对敏感资源的访问,并仅授予他们执行其任务所需的最小权限。
  3. 使用安全的标识符: 对于每个资源或操作,都应使用安全的标识符来标识用户和资源。这样可以防止攻击者通过修改标识符来访问未经授权的资源。
  4. 安全开发实践: 开发人员应该接受安全意识培训,并使用安全的开发实践来编写和测试应用程序代码。这包括对用户输入进行验证和过滤,以防止恶意用户提交恶意数据。
  5. 监控和日志记录: 应该实施监控和日志记录机制,以便及时检测和响应越权访问尝试。这包括记录用户活动、异常事件和安全警报,并及时采取措施来应对潜在的安全威胁。

暴力破解验证码

测试场景

李老板联系你,他说公司已修复验证码复用漏洞,且管理员密码未泄露。但管理员手机号(18888888888)已泄露,有人利用此信息登录并更改了管理员密码。李老板提供了管理员账号(admin)和后台登录网站(xxx.com)。

测试实操

打开 HTTP抓包测试工具,打开右上角内置浏览器,在浏览器中访问李老板提供的后台网站,加载是一个登录界面:

根据李老板所说,管理员账号密码并没有泄露,所以这里应该是通过忘记密码修改了管理员的密码,点击忘记密码页面:

输入手机号码后点击获取短信校验码:

回到 HTTP抓包测试工具中开启拦截拦截之后注意不要放行该数据包),在浏览器中输入任意短信校验码后,点击提交认证信息:

成功抓取到数据包:

这是一个 POST 的请求包,其中最后一行phone_number=18888888888&sms_verification_code=1234中的前部分为手机号码,后部分为验证码。因为不存在越权漏洞和验证码为空等,所以尝试暴力破解验证码,把数据包发送到 HTTP模糊测试工具中:

等待软件自动启动并且跳转到对应的界面。

步骤 1- 设置请求参数

设置验证码的值(1234),并给它打上标记:

步骤 2-设置变体参数

1.重放模式

因为只需要测试验证码,所以选择重放模式为“单字典逐一爆破模式”:

2.变体赋值

选择赋值方式为数字自增长模式,设置从 0 到 9999,这样就可以测试出所有的四位数验证码,但是请注意第一个验证码应该是“0000”,所以请勾选补零。

设置完成后,点击小眼睛可以预览测试数据:

开始测试

点击“测试过程”页面,点击右上角“启动测试”,可以得到许多数据。

如果有正确的验证码登录返回的长度肯定会不一致,此处选择按长度进行排序:

发现数据中有一个长度为 335 的数据包,验证码为 4880:

点击该数据包,右侧查看响应包:

复制暴力破解成功的响应包,回到HTTP抓包测试工具的请求拦截模块,点击放行按钮

,将一直拦截着的数据包放行,等待拦截到放行该包后的响应数据包,如下图所示:

将其替换为我们刚刚复制的破解成功的响应包,如下图所示:

解释:这里普遍的做法是使用刚刚得到的验证码(4880)进行登录,但是验证码只能使用一次,再次登录还是会提示验证码错误。

不过成功登录后的状态是存在的,所以只需要拿到成功登录的响应包进行替换,就能成功进入修改密码页面。

替换内容后,关闭拦截

,回到内置浏览器中可以得到修改密码的页面:

修改密码后提示成功修改密码:

返回首页进行重新登录:

输入用户名(admin)和修改后的密码以及验证码:

登录成功后,得到对应的 flag:

至此成功找到李老板所说的问题,该漏洞为验证码暴力破解,从而导致管理员密码被修改。

测试总结

测试漏洞:

验证码暴力破解漏洞指的是攻击者利用自动化工具,不断尝试各种可能的验证码组合,以尝试绕过验证码验证机制的安全措施。通常,验证码用于验证用户是否为人类而不是自动化程序或机器人。验证码通常是一种简单的图形或数字挑战,要求用户在登录或注册过程中正确输入。然而,四位数的验证码相对较短,可能存在被猜测和暴力破解的风险。

解决方案:

  1. 增加验证码复杂度: 提高验证码的复杂度,包括增加验证码长度、使用字母、数字和特殊字符的组合、随机化验证码内容等,增加破解难度。
  2. 限制尝试次数: 在验证过程中限制用户尝试输入验证码的次数和频率,超过一定次数或频率后暂时锁定账户或增加验证步骤,以防止暴力破解攻击。
  3. 实施账户锁定机制: 当用户连续多次输入错误验证码时,暂时锁定账户一段时间,防止攻击者继续尝试暴力破解。
  4. 添加人机验证: 在验证码之外添加人机验证机制,如图像识别、滑块验证、短信验证码等,增加破解难度。
  5. 定期更新验证码: 定期更新验证码算法和生成逻辑,防止攻击者建立有效的破解模型。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com