Temel Gitea Bilgisi

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Yapı

Temel Gitea ortam yapısı, organizasyon(lar) tarafından repo gruplandırması yapmaktır; her biri birkaç depo ve birkaç takım içerebilir. Ancak, github’da olduğu gibi kullanıcıların organizasyon dışında depoları olabileceğini unutmayın.

Ayrıca, bir kullanıcı farklı organizasyonların üyesi olabilir. Organizasyon içinde kullanıcı, her depo üzerinde farklı izinlere sahip olabilir.

Bir kullanıcı ayrıca farklı takımların bir parçası olabilir ve farklı depolar üzerinde farklı izinlere sahip olabilir.

Ve nihayetinde depolar özel koruma mekanizmalarına sahip olabilir.

İzinler

Organizasyonlar

Bir organizasyon oluşturulduğunda, Sahipler adında bir takım oluşturulur ve kullanıcı bu takımın içine yerleştirilir. Bu takım, organizasyon üzerinde yönetici erişimi verecektir; bu izinler ve takımın adı değiştirilemez.

Org yöneticileri (sahipler) organizasyonun görünürlüğünü seçebilir:

  • Genel
  • Sınırlı (sadece giriş yapmış kullanıcılar)
  • Özel (sadece üyeler)

Org yöneticileri, repo yöneticilerinin takımlara erişim ekleyip veya kaldırıp kaldıramayacağını da belirtebilir. Ayrıca, maksimum depo sayısını da belirtebilirler.

Yeni bir takım oluştururken, birkaç önemli ayar seçilir:

  • Takım üyelerinin erişebileceği organizasyonun depoları belirtilir: belirli depolar (takımın eklendiği depolar) veya hepsi.
  • Ayrıca, üyelerin yeni depolar oluşturup oluşturamayacağı belirtilir (oluşturucu buna yönetici erişimi alır).
  • Depo üyelerinin sahip olacağı izinler:
  • Yönetici erişimi
  • Belirli erişim:

Takımlar & Kullanıcılar

Bir depoda, org yöneticisi ve repo yöneticileri (org tarafından izin verilirse) işbirlikçilere (diğer kullanıcılara) ve takımlara verilen rolleri yönetebilir. 3 olası rol vardır:

  • Yönetici
  • Yazma
  • Okuma

Gitea Kimlik Doğrulaması

Web Erişimi

kullanıcı adı + şifre kullanarak ve potansiyel olarak (ve önerilen) bir 2FA ile.

SSH Anahtarları

Hesabınızı, ilgili özel anahtarın sizin adınıza işlem yapmasına izin veren bir veya birkaç genel anahtar ile yapılandırabilirsiniz. http://localhost:3000/user/settings/keys

GPG Anahtarları

Bu anahtarlarla kullanıcıyı taklit edemezsiniz, ancak kullanmazsanız, imzasız gönderim yaparken keşfedilme olasılığınız olabilir.

Kişisel Erişim Jetonları

Bir uygulamanın hesabınıza erişim sağlaması için kişisel erişim jetonu oluşturabilirsiniz. Kişisel erişim jetonu, hesabınıza tam erişim sağlar: http://localhost:3000/user/settings/applications

Oauth Uygulamaları

Kişisel erişim jetonları gibi Oauth uygulamaları da hesabınıza ve hesabınızın erişim sağladığı yerlere tam erişim sağlayacaktır; çünkü belgelere göre, kapsamlar henüz desteklenmiyor:

Dağıtım Anahtarları

Dağıtım anahtarları, depoya yalnızca okuma veya yazma erişimine sahip olabilir, bu nedenle belirli depoları tehlikeye atmak için ilginç olabilir.

Dal Koruma

Dal korumaları, kullanıcılara bir depo üzerinde tam kontrol vermemek için tasarlanmıştır. Amaç, bazı dallara kod yazabilmek için birkaç koruma yöntemi koymaktır.

Bir deponun dal korumaları https://localhost:3000/<orgname>/<reponame>/settings/branches adresinde bulunabilir.

Note

Bir dal korumasını organizasyon düzeyinde ayarlamak mümkün değildir. Bu nedenle, hepsi her depoda belirtilmelidir.

Bir dala (örneğin master’a) farklı korumalar uygulanabilir:

  • Push’i Devre Dışı Bırak: Hiç kimse bu dala push yapamaz.
  • Push’i Etkinleştir: Erişimi olan herkes push yapabilir, ancak zorla push yapamaz.
  • Beyaz Liste Kısıtlı Push: Sadece seçilen kullanıcılar/takımlar bu dala push yapabilir (ancak zorla push yok).
  • Beyaz Liste Birleştirmeyi Etkinleştir: Sadece beyaz listeye alınmış kullanıcılar/takımlar PR’leri birleştirebilir.
  • Durum Kontrollerini Etkinleştir: Birleştirmeden önce durum kontrollerinin geçmesini gerektirir.
  • Onayları Gerektir: Bir PR’nin birleştirilmeden önce gereken onay sayısını belirtir.
  • Onayları beyaz listeye kısıtla: PR’leri onaylayabilecek kullanıcıları/takımları belirtir.
  • Reddedilen incelemelerde birleştirmeyi engelle: Değişiklik talep edilirse, birleştirilemez (diğer kontroller geçse bile).
  • Resmi inceleme taleplerinde birleştirmeyi engelle: Resmi inceleme talepleri varsa, birleştirilemez.
  • Eski onayları geçersiz kıl: Yeni commitler olduğunda, eski onaylar geçersiz kılınır.
  • İmzalı Commitleri Gerektir: Commitler imzalanmalıdır.
  • Pull request güncel değilse birleştirmeyi engelle.
  • Korunan/Korunmayan dosya desenleri: Değişikliklere karşı korumak/kaldırmak için dosya desenlerini belirtir.

Note

Gördüğünüz gibi, bir kullanıcının bazı kimlik bilgilerini elde etmeyi başarsanız bile, depolar korumalı olabilir ve bu da örneğin CI/CD hattını tehlikeye atmak için kodu master’a push yapmanızı engelleyebilir.

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin