强制找回GitLab管理员账户密码的方法

为了开发运维工具,我们采用自行搭建的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服务器的用户,都有方法查询到甚至直接修改所有用户的信息,听起来还是很可怕的一件事情,因此便捷性和安全性有时可能就是互相冲突的一对矛盾,此消彼长。

时间: 2024-09-26 14:22:05

强制找回GitLab管理员账户密码的方法的相关文章

Discuz! X3找回重置管理员密码的方法

  朋友一个网站的密码忘记了,叫我帮他修改,用的是discuz x3也是最新的论坛系统,这个我以前很少用,也没怎么接触,第一当然我就是首先去修改mysql数据库,dx采用的是32位的md5加密,所以我就找了几个简单的密码放上去,但是发现改了好多都没用,当然在u-cent的表中也改过了,但是发现还是没效果,最后终于找到了一个较为简单的方法修改disucz x 3的密码.方法如下: 在网站根目录下的子目录uc_server/data中打开找到文件config.inc.php 以及 config/co

win8系统去除管理员账户密码的方法

"搜索"--"控制面板" "用户账户和家庭安全"--"用户账号"--"在电脑中更改我的账户设置" 更改密码 "输入原密码",下一步--"新密码",,直接敲回车即可--点击"完成".. ok,开机的时候看看,选项没了吧!!         注:更多请关注电脑教程栏目,三联电脑办公群:189034526欢迎你的加入

用DiskGenius找回硬盘丢失空间的方法

  DiskGenius是一款非常好用的分区工具,不过,除了对电脑.硬盘进行分区之外,DiskGenius的功能还有很多,比如说,帮助硬盘把丢失的分区找回来.那么,DiskGenius是如何做到的呢?一起来看看今天的用DiskGenius找回硬盘丢失空间的方法! 主人自述:所购微机硬盘格式化后容量为38GB,共分C.D.E三个区,其中主分区C容量为5GB,扩展分区D.E平分余下空间,约16.5GB.今天电脑开机后一切正常,但试图通过"我的电脑"选取E盘时,竟发现E盘神秘失踪. 现场情况

Linux找回丢失磁盘空间的方法

  Linux系统磁盘提示满了,可是磁盘内文件加起来的大小和被占用的大小不一致,这就是磁盘丢失的情况,那么是什么程序占用了磁盘空间?下面小编就给大家介绍下Linux找回丢失磁盘空间的方法. 经常接触linux的用户也许会经常遇到这样的问题: 收到一个磁盘告警,说某某分区已经满了,然后登录服务器 df 一看,发现磁盘确实快满了,然后你就想找到具体是哪个目录满了,于是 du -s * 一看,却发现所有子目录的大小总和却和df显示的总已使用磁盘空间对不上,有时候甚至还相差很多,于是就纳闷了:我的磁盘空

Win8系统获取最高管理员权限的方法

在Windows系统下,系统的操作权限是有一定的限制的,一般用户登录的账户都是普通管理员,因此很多操作都会受限,为了能拥有更高的操作能力,就必须获取最高的管理员权限,那么在Windows8系统下如何一键快速获取高级管理员权限呢? Windows8一键获取最高管理员权限的方法: 1.在要获得所有权限的文件或者文件夹上,右键,一键取得超级管理员权限,就可以在普通管理员帐户中,快速取得最高权限. 2.取得权限后,再运行程序,就与在超级管理员帐户中运行中是一样的. 3.还有一种情况是由于有程序正在操作这

Android编程实现应用强制安装到手机内存的方法_Android

本文实例讲述了Android编程实现应用强制安装到手机内存的方法.分享给大家供大家参考,具体如下: 在Froyo(android 2.2,API Level:8)中引入了android:installLocation.通过设置该属性可以使得开发者以及用户决定程序的安装位置. android:installLocation隶属于AndroidManifest.XML中的manifest节点.如下所示: <manifest xmlns:android="http://schemas.andro

Android编程实现将应用强制安装到手机内存的方法_Android

本文实例讲述了Android编程实现将应用强制装到手机内存的方法.分享给大家供大家参考,具体如下: 在Froyo(android 2.2,API Level:8)中引入了android:installLocation.通过设置该属性可以使得开发者以及用户决定程序的安装位置. android:installLocation隶属于AndroidManifest.XML中的manifest节点.如下所示: <manifest xmlns:android="http://schemas.andro

Android编程实现应用强制安装到手机内存的方法

本文实例讲述了Android编程实现应用强制安装到手机内存的方法.分享给大家供大家参考,具体如下: 在Froyo(android 2.2,API Level:8)中引入了android:installLocation.通过设置该属性可以使得开发者以及用户决定程序的安装位置. android:installLocation隶属于AndroidManifest.XML中的manifest节点.如下所示: <manifest xmlns:android="http://schemas.andro

小米账户密码忘了怎么找回?小米账户密码忘了找回方法

1忘记了密码不要着急,可以到小米官网找回;百度一下小米官网,通过链接打开官网,或直接输入小米官方网址. 2进入官网后,打开登录窗口,点击忘记密码. 3小米官网提供了3种方式取回密码:手机号码.邮箱或小米ID,由于在注册小米账号时可以通过手机号码或邮箱方式注册,所以说小米账号肯定有绑定了其中一种,而小米ID是肯定有的,只是不好记. [邮箱方式] 1使用注册邮箱找回密码时,输入注册小米账号时的邮箱地址,点击下一步按钮,如果邮箱正确则提示向此邮箱发送了一封邮件. 2登录注册时的邮箱,在收件箱中可以看到