强制找回GitLab管理员账户密码的方法
2017-01-22 22:54
218 查看
为了开发运维工具,我们采用自行搭建的GitLab来管理所有代码。悲催的是最近忘记了管理员账户的密码,而且没有邮件服务器,因此无法接收密码找回的邮件,导致无法新建用户或者项目,这样一来,岂不就成为了一个”永不能扩展”的代码库?难道只能重建?
重建可以解决问题,可是实在有些LOW,好在GitLab留下了可以修改管理员账号密码的方法,一定意义上可以认为就是一个后门。
尝试各种可能的管理员账户密码,无效,
尝试使用忘记密码,由于未配置邮件服务器,所以显示发送了邮件,但实际没有任何的作用。
接下来,尝试使用”后门”。首先登录GitLab后台服务器,并且切换至git用户,
登录GitLab的Rails控制台(GitLab使用RoR语言开发),
接下来使用user = User.where(id: 1).first,定位到id=1的用户,就是超级管理员,
我们可以从回显中可以看出,id=1的用户电子邮箱是admin@example.com,密码加了密,还有关于这个用户的所有属性信息,例如skype、linkedin、twitter、username等。
我们还可以使用User.find_by(email: ‘xxx’)来查找指定邮箱的用户,
接下来为这个用户设置password,
保存设置,可以猜出此时会触发一个邮件发送的JOB,告知所做变更,
再次登录,
确实可以了,
总结:
GitLab的任何用户账号信息都可以从后台Rails控制台来查出来,包括所有的用户属性信息,由于其使用的是PG数据库,因此这些信息从相应表中同样可以检索出来,一方面方便了这种密码忘记的找回,另一方面实际是开了后门,任何访问GitLab服务器的用户,都有方法查询到甚至直接修改所有用户的信息,听起来还是很可怕的一件事情,因此便捷性和安全性有时可能就是互相冲突的一对矛盾,此消彼长。
重建可以解决问题,可是实在有些LOW,好在GitLab留下了可以修改管理员账号密码的方法,一定意义上可以认为就是一个后门。
尝试各种可能的管理员账户密码,无效,
尝试使用忘记密码,由于未配置邮件服务器,所以显示发送了邮件,但实际没有任何的作用。
接下来,尝试使用”后门”。首先登录GitLab后台服务器,并且切换至git用户,
登录GitLab的Rails控制台(GitLab使用RoR语言开发),
接下来使用user = User.where(id: 1).first,定位到id=1的用户,就是超级管理员,
我们可以从回显中可以看出,id=1的用户电子邮箱是admin@example.com,密码加了密,还有关于这个用户的所有属性信息,例如skype、linkedin、twitter、username等。
我们还可以使用User.find_by(email: ‘xxx’)来查找指定邮箱的用户,
接下来为这个用户设置password,
保存设置,可以猜出此时会触发一个邮件发送的JOB,告知所做变更,
再次登录,
确实可以了,
总结:
GitLab的任何用户账号信息都可以从后台Rails控制台来查出来,包括所有的用户属性信息,由于其使用的是PG数据库,因此这些信息从相应表中同样可以检索出来,一方面方便了这种密码忘记的找回,另一方面实际是开了后门,任何访问GitLab服务器的用户,都有方法查询到甚至直接修改所有用户的信息,听起来还是很可怕的一件事情,因此便捷性和安全性有时可能就是互相冲突的一对矛盾,此消彼长。
相关文章推荐
- destoon找回管理员密码的方法
- linux不知道账户密码,强制找回 和 WordPress 没有阅读量和 定时器发布失败的处理
- 2000管理员密码丢失的找回方法
- gitlab忘记管理员账户或密码解决记录
- windows8系统去除管理员账户密码的方法
- Win8系统通过Web凭据找回账户密码的方法
- gitlab忘记管理员的密码解决方法
- 还原目录模式下怎样找回域管理员的密码??(附 解答方法)
- destoon找回管理员密码的方法
- windows2000/nt/xp管理员密码丢失解决方法大全
- linux下强制变更root密码方法
- 清除Windows 2000和XP管理账户密码方法
- 遗忘VSS管理员密码的解决方法
- 如何防止QQ被盗密码 比较详细找回qq号的方法
- Oracle的SYS密码找回方法
- 找回忘记了的Win XP登录密码的方法
- 两招轻松找回遗忘的WinXP管理员密码
- 教你一招用U盘破除管理员密码的方法
- 一种简单的修改所有域内本地管理员密码,及加某个帐号至本地管理员组的方法
- 恢复 Windos XP管理员密码的五个方法