# GCP - Artefak Registrasie Volharding

{{#include ../../../banners/hacktricks-training.md}}

## Artefak Registrasie

Vir meer inligting oor Artefak Registrasie, kyk:

{{#ref}}
../gcp-services/gcp-artifact-registry-enum.md
{{#endref}}

### Afhanklikheid Verwarring

- Wat gebeur as 'n **afgeleë en 'n standaard** registrasies **in 'n virtuele** een gemeng word en 'n pakket in albei bestaan?
- Die een met die **hoogste prioriteit wat in die virtuele registrasie** gestel is, word gebruik
- As die **prioriteit dieselfde is**:
- As die **weergawe** die **dieselfde** is, word die **beleidsnaam alfabeties** eerste in die virtuele registrasie gebruik
- As nie, word die **hoogste weergawe** gebruik

> [!CAUTION]
> Daarom is dit moontlik om 'n **hoogste weergawe (afhanklikheid verwarring)** in 'n openbare pakket registrasie te **misbruik** as die afgeleë registrasie 'n hoër of dieselfde prioriteit het

Hierdie tegniek kan nuttig wees vir **volharding** en **onaangetekende toegang** aangesien dit net vereis om 'n **biblioteeknaam** te **ken** wat in Artefak Registrasie gestoor is en **daardie selfde biblioteek in die openbare registrasie (PyPi vir python byvoorbeeld)** met 'n hoër weergawe te **skep**.

Vir volharding is dit die stappe wat jy moet volg:

- **Vereistes**: 'n **virtuele registrasie** moet **bestaan** en gebruik word, 'n **interne pakket** met 'n **naam** wat nie in die **openbare registrasie** bestaan nie, moet gebruik word.
- Skep 'n afgeleë registrasie as dit nie bestaan nie
- Voeg die afgeleë registrasie by die virtuele registrasie
- Wysig die beleide van die virtuele registrasie om 'n hoër prioriteit (of dieselfde) aan die afgeleë registrasie te gee.\
Voer iets soos uit:
- [gcloud artifacts repositories update --upstream-policy-file ...](https://cloud.google.com/sdk/gcloud/reference/artifacts/repositories/update#--upstream-policy-file)
- Laai die wettige pakket af, voeg jou kwaadwillige kode by en registreer dit in die openbare registrasie met dieselfde weergawe. Elke keer as 'n ontwikkelaar dit installeer, sal hy joune installeer!

Vir meer inligting oor afhanklikheid verwarring, kyk:

{{#ref}}
https://book.hacktricks.wiki/en/pentesting-web/dependency-confusion.html
{{#endref}}

{{#include ../../../banners/hacktricks-training.md}}
