3.4Kпросмотров
17 января 2024 г.
Score: 3.7K
Gitlab Access Tokens Gitlab позволяет создавать токены доступа для групп, проектов или персональные для пользователей. Если нам достался такой токен (например, нашли в репозитории), то встает вопрос - а что же именно с этим токеном можно делать? Для этого можно использовать запрос: curl --header "PRIVATE-TOKEN: token_here" https://gitlab.example.com/api/v4/personal_access_tokens/self В ответе будет имя токена, идентификатор пользователя, для которого этот токен выписан, а также scopes - права. В примере на картинке токен имеет полный доступ в API, а также может пушить в репозиторий и Gitlab Image Registry. Доступ в API - это довольно высокие права, с таким доступом можно читать доступные Gitlab Variables, запускать пайплайны от имени пользователя и многое другое. Посмотреть пользователя, для которого выдан токен можно здесь: curl https://gitlab.example.com/api/v4/users/<user_id> Если токен выдан для проекта или группы, имя пользователя будет иметь формат (project|group)_<(project|group)_id>_bot_<random_bytes> В зависимости от проекта/группы/пользователя нам могут быть доступны разные возможности. Вплоть до полноценного административного доступа в Gitlab. Также при создании токена указывается роль (Developer/Maintainer/Guest/etc), но как узнать роль имея на руках только токен, я не нашел. P.S. В Gitlab есть префикс для персональных токенов glpat-(дока). Можно добавлять в инструменты поиска секретов.