注册功能设计缺陷

admin 2024年10月18日23:09:37评论14 views字数 3181阅读10分36秒阅读模式
注册功能设计缺陷

0x01 等保测评项

GBT 22239-2019《信息安全技术 网络安全等级保护基本要求》中,8.1.4安全计算环境—身份鉴别项中要求包括:

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;

b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;

c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;

d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,并其中一种鉴别技术至少应使用密码技术来实现。

注册功能设计缺陷对应身份鉴别项中要求a),所以安全控制点为身份鉴别a

GBT 28448-2019《信息安全技术 网络安全等级保护测评要求》中,测评单元(L3-CES1-01) 该测评单元包括以下要求:

a)测评指标:应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。

b)测评对象:终端和服务器等设备中的操作系统(包括宿主机和虚拟机操作系统)、网络设备(包括虚拟网络设备)、安全设备(包括虚拟安全设备)、移动终端、移动终端管理系统、移动终端管理客户端、感知节点设备、网关节点设备、控制设备、业务应用系统、数据库管理系统、中间件和系统管理软件及系统设计文档等。

c)测评实施包括以下内容:

1)应核查用户在登录时是否采用了身份鉴别措施;
2)应核查用户列表确认用户身份标识是否具有唯一性;
3)应核查用户配置信息或测试验证是否不存在空口令用户;
4)应核查用户鉴别信息是否具有复杂度要求并定期更换。

注册功能设计缺陷属于测评单元(L3-CES1-01)中测评实施的第2项,故定测评单元为L3-CES1-01.2

0x02 测试内容

当系统存在注册功能时,对其进行以下测试:

  1. 1. 任意用户注册,比如任意手机号注册、批量注册;

  2. 2. 覆盖注册,比如注册时显示该用户已注册,在注册新用户时抓包,把自己的信息篡改为admin,尝试覆盖admin重新注册;

0x03 漏洞原理

批量注册、任意用户注册: 通常是由于无验证码或者验证码不安全,可对注册时的用户名等信息遍历,达成批量注册的目的。使用脚本批量注册甚至会造成服务器Dos应用层攻击,影响网站的正常使用。

覆盖注册: 系统未对需要注册的账户进行检验,在未核对数据库中的账号是否已经存在情况下进行新用户的注册。

测试时可能会出现这类情况:网站数据库中已经有一个Tide用户,但新用户注册了一个账号,用户名也是Tide,但是开发人员并没有对重复的用户名进行提示,而是直接将数据插入数据库,导致老用户的用户名被覆盖。登录查看时却获取到数据库中同名用户的其他用户信息,导致其他用户信息泄漏,或者由于在验证用户名是否存在时,从前端获取到的数据与从数据库获取到的数据不同,但是往数据库中写入的时候却写入了相同的部分。

0x04 代码示例

CVE-2019-16097 Harbor任意管理员注册漏洞。此漏洞在于用户可以在注册发送POST数据包时,加入"has_admin_role":True字段就可以直接注册为管理员用户。

Harbor源代码的User结构有很多属性,其中HasAdminRole这个属性用来区分用户是否为管理员,值为Bool类型,控制这个字段就可以利用此漏洞。访问“/api/users”这个api,并且发送相应POST请求就能注册新用户。

注册功能设计缺陷

漏洞代码位于user.go的第317行“if err := ua.DecodeJSONReq(&user); err != nil” 这段代码将用户的post的数据转换为user结构。

注册功能设计缺陷

正常的请求如下所示:

{"username":"test","email":"[email protected]","realname":"no name","password":"Password1u0021","comment":null}

如果在请求中添加"has_admin_role"="True"这个字段,那么创建的用户就拥有管理员权限。

0x05测试过程

测试案例1

CVE-2019-16097任意管理员注册漏洞。该漏洞因注册模块对参数校验不严格,可导致任意管理员注册。攻击者注册管理员账号后可以接管Harbor镜像仓库,从而写入恶意镜像,最终可以感染使用此仓库的客户端等。

进入Harbor注册页面,随意输入注册信息。

注册功能设计缺陷

截取注册请求数据包,添加字段"has_admin_role":true,注册的test用户就变成管理员账号。

注册功能设计缺陷

注册功能设计缺陷

测试案例2

批量注册 应用程序未对注册功能进行严格限制,导致攻击者可以恶意注册,造成系统存在大量“僵尸”用户。此案例的注册页面虽然需要输入姓名和身份证号码,但是并未对姓名和身份证号码做核对,输入任意姓名和身份证号即可注册。
注册功能设计缺陷
先使用正确的信息注册,进行抓包,记录注册时请求的数据包,然后对手机号进行批量遍历,就能批量注册成功。

注册功能设计缺陷

测试案例3

覆盖注册 对于注册页面覆盖注册,是指原来用一个手机号或用户名等已经注册了账号,但是由于漏洞,导致可以利用该手机号或用户名等再次进行注册,并且会将之前的注册记录覆盖。当用已经注册的账号再次注册时,系统提示该手机号已经存在。
注册功能设计缺陷
经抓包发现,服务器检测到手机号已经注册过会返回“true”,未注册时返回“false”。

注册功能设计缺陷

根据上一步的发现,使用已注册的手机号进行注册,抓取返回包,将返回包的值改为“false”,注册成功。
注册功能设计缺陷
注册功能设计缺陷

0x06风险分析

任意用户注册、批量注册有可能造成服务器dos应用层攻击、影响网站的正常使用、浪费数据库资源、产生大量“僵尸”用户。覆盖注册会导致用户信息泄漏、用户身份盗用等风险。

0x07 加固建议

  1. 1. 增加对数据库中账号是否存在的核对检验机制;
  2. 2. 注册页面增加验证码机制,为防止验证码被破解,可适当增加验证码强度,比如图形验证码、短信验证码等;
  3. 3. 使用session对当前用户的权限做校验等。
参考 
https://unit42.paloaltonetworks.com/critical-vulnerability-in-harbor-enables-privilege-escalation-from-zero-to-admin-cve-2019-16097/ 
https://xz.aliyun.com/t/6412 
https://cloud.tencent.com/developer/article/1933492

往期推荐

敏感信息泄露

潮影在线免杀平台上线了

自动化渗透测试工具开发实践

【红蓝对抗】利用CS进行内网横向

一个Go版(更强大)的TideFinger

SRC资产导航监测平台Tsrc上线了

新潮信息-Tide安全团队2022年度总结

记一次实战攻防(打点-Edr-内网-横向-Vcenter)

注册功能设计缺陷

E

N

D

知识星球产品及服务

团队内部平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台  | ......

星球分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享

星球知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......

星球网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑  | ......

扫码加入一起学习吧~

注册功能设计缺陷

注册功能设计缺陷

原文始发于微信公众号(白帽子):注册功能设计缺陷

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月18日23:09:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   注册功能设计缺陷https://cn-sec.com/archives/1879980.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息