Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
CVE-2024-40275_Scanner — Scanner per la divulgazione del codice sorgente di Apache HTTP Server (CVE-2024-40725); sonda i percorsi diretti e di subrequest, rileva le versioni interessate e genera report JSON per CI/CD. | Kitploit
Strumenti/GitHubGitHub/burjoy/cve-2024-40275_scanner
Scanner di VulnerabilitàScanner di Vulnerabilità WebAnalisi delle VulnerabilitàSicurezza WebConfigurazione Errata
GitHubburjoy/cve-2024-40275_scanner

CVE-2024-40275_Scanner

Scanner per la divulgazione del codice sorgente di Apache HTTP Server (CVE-2024-40725); sonda i percorsi diretti e di subrequest, rileva le versioni interessate e genera report JSON per CI/CD.

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
Vedi Repository
2 giorni faNon ancora revisionato

CVE-2024-40725 Scanner

Uno strumento di rilevamento basato su Python per CVE-2024-40725, una vulnerabilità di divulgazione del codice sorgente del server Apache HTTP che interessa le versioni 2.4.0 e 2.4.61.

Nota legale: Esegui questo scanner solo su server di tua proprietà o per i quali disponi di esplicita autorizzazione scritta al test. L'uso non autorizzato può violare le leggi contro le frodi informatiche (ad es., CFAA, Computer Misuse Act).


Contesto

CVE-2024-40725 è una regressione nella pipeline interna di elaborazione delle richieste di Apache, introdotta nella versione 2.4.0 (come correzione incompleta di CVE-2024-39884). Quando un server è configurato utilizzando direttive legacy AddType (ad es., AddType application/x-httpd-php .php), l'assegnazione interna dell'handler di Apache viene eliminata silenziosamente durante l'elaborazione delle subrequest (attivata da DirectoryIndex, mod_rewrite o mod_dir).

Di conseguenza, l'interprete degli script PHP non viene mai invocato. Al suo posto, il default-handler integrato di Apache apre il file dal disco e ne trasmette i byte grezzi, incluse credenziali del database, chiavi API e logica applicativa, direttamente al client.

Versioni interessate: Apache httpd 2.4.0 – 2.4.61
Corretto in: Apache httpd 2.4.62+


Requisiti

  • Python 3.8+
  • Libreria requests
root@kitploit:~
pip install requests

Installazione

root@kitploit:~
# Clona o scarica lo scanner
curl -O https://your-host/cve_2024_40725_scanner.py

# Rendi eseguibile (opzionale)
chmod +x cve_2024_40725_scanner.py

Utilizzo

root@kitploit:~
python3 cve_2024_40725_scanner.py --target <URL> [OPTIONS]

Opzioni


Esempi

root@kitploit:~
# Avvio rapido: scansiona localhost con i percorsi predefiniti integrati
python3 cve_2024_40725_scanner.py --target http://localhost

# Scansiona percorsi specifici
python3 cve_2024_40725_scanner.py \
  --target http://192.168.1.10 \
  --paths /index.php /admin/config.php /wp-config.php

# Usa un file wordlist
python3 cve_2024_40725_scanner.py \
  --target http://192.168.1.10 \
  --wordlist php_paths.txt

# Combina wordlist + percorsi inline extra (uniti e deduplicati)
python3 cve_2024_40725_scanner.py \
  --target http://192.168.1.10 \
  --wordlist php_paths.txt \
  --paths /extra/secret.php

# HTTPS con certificato autofirmato
python3 cve_2024_40725_scanner.py \
  --target https://myserver.local \
  --no-verify-ssl

# Scansione discreta con ritardo di 1 secondo e report JSON
python3 cve_2024_40725_scanner.py \
  --target http://myserver.local \
  --wordlist php_paths.txt \
  --delay 1.0 \
  --output results.json \
  --verbose

# Utilizzo in CI/CD (codice di uscita 1 = vulnerabile, 0 = pulito)
python3 cve_2024_40725_scanner.py --target http://localhost || echo "VULNERABLE"

Formato della wordlist

Un percorso per riga. Le righe che iniziano con # vengono trattate come commenti e saltate. Le righe vuote vengono ignorate. Le barre iniziali vengono normalizzate automaticamente.

root@kitploit:~
# Punti di ingresso PHP comuni
/index.php
/info.php
/phpinfo.php

# Pannelli di amministrazione
/admin/index.php
/admin/config.php

# File CMS
/wp-config.php
/wp-login.php
/configuration.php

# Dettagli interni delle API
/api/v1/status.php

Come funziona

Lo scanner esegue due probe per ogni percorso:

Probe A — Richiesta diretta del file

root@kitploit:~
GET /index.php HTTP/1.1

Verifica se la richiesta diretta del file PHP restituisce il codice sorgente grezzo. Il problema interessa i server configurati in modo errato in cui AddType non funziona correttamente nemmeno per le richieste dirette.

Probe B — Attivazione tramite subrequest (il vero percorso della CVE)

root@kitploit:~
GET / HTTP/1.1

Richiede la directory padre invece del file stesso. Apache risolve internamente DirectoryIndex → index.php, generando una subrequest. Questo è l'esatto percorso di codice in cui r->handler viene impostato a NULL in Apache 2.4.0–2.4.61.

Il Probe B è il test più importante e realistico. Molti server sono vulnerabili solo tramite il percorso di subrequest e non tramite la richiesta diretta del file.

Rilevamento della fuga

Lo scanner controlla il corpo della risposta alla ricerca di firme di codice sorgente PHP:

  • <?php
  • <?PHP
  • <?=

Quando viene trovata una corrispondenza, estrae un frammento di 150 caratteri attorno al punto della fuga per il triage, senza stampare l'intero corpo della risposta.

Fingerprinting del server

Legge l'header Server: della risposta per rilevare la versione di Apache. Segnala i server che riportano la versione 2.4.0 o 2.4.61 anche prima di una fuga confermata.

Nota: i server hardened possono sopprimere l'header Server: (ServerTokens Prod). Lo scanner esegue comunque tutti i probe.


Output

Esempio di output del terminale

root@kitploit:~
============================================================
  CVE-2024-40725 -- Apache Source Code Disclosure Scanner
============================================================
  Target : http://localhost
  Paths  : 6
  Time   : 2024-08-01T12:00:00

  [*] Fingerprinting server: http://localhost
      Server Header : Apache/2.4.61 (Debian)
      Apache Version: 2.4.61
      [!] Version is in vulnerable range (2.4.0 - 2.4.61)

  [*] Testing 6 path(s)...

  --- /index.php
      Direct  (HTTP 200): OK
      Subreq  (HTTP 200): LEAKED
      [!] VULNERABLE via: subrequest (directory index)
         Leaked snippet: '<?php\n$db_pass = "supersecretpassword";'

  --- /info.php
      Direct  (HTTP 404): OK
      Subreq  (HTTP 404): OK
      [+] Safe

============================================================
  SCAN SUMMARY
============================================================
  Target            : http://localhost
  Apache Version    : 2.4.61
  Paths Tested      : 6
  Vulnerable Paths  : 1
  Safe Paths        : 5

  [!] RESULT: VULNERABLE
      Vulnerable paths:
        * /index.php  (trigger: subrequest (directory index))

  Remediation:
    1. Upgrade to Apache httpd >= 2.4.62
    2. Replace 'AddType' with 'SetHandler' in <FilesMatch> blocks
============================================================

Struttura del report JSON (--output results.json)

root@kitploit:~
{
  "target": "http://localhost",
  "scan_time": "2024-08-01T12:00:00",
  "apache_version": "2.4.61",
  "apache_in_range": true,
  "paths_tested": 6,
  "vulnerable_paths": [
    {
      "path": "/index.php",
      "direct_url": "http://localhost/index.php",
      "directory_url": "http://localhost/",
      "direct_status": 200,
      "direct_leaked": false,
      "direct_snippet": null,
      "directory_status": 200,
      "directory_leaked": true,
      "directory_snippet": "<?php\n$db_pass = \"supersecretpassword\";",
      "server_header": "Apache/2.4.61 (Debian)",
      "vulnerable": true,
      "trigger": "subrequest (directory index)"
    }
  ],
  "safe_paths": [...]
}

Codici di uscita

CodiceSignificato
0Nessun percorso vulnerabile rilevato
1Trovati uno o più percorsi vulnerabili

I codici di uscita rendono lo scanner adatto all'uso in pipeline CI/CD e ad audit automatizzati dell'infrastruttura.


Rimedi

Opzione 1: aggiornare Apache (consigliata)

root@kitploit:~
# Debian / Ubuntu
sudo apt update && sudo apt install apache2

# RHEL / CentOS / AlmaLinux
sudo dnf update httpd

# Verifica la versione (deve essere >= 2.4.62)
apache2 -v

Opzione 2: sostituire AddType con SetHandler

Sostituisci tutte le direttive AddType utilizzate per l'esecuzione di PHP:

root@kitploit:~
# ❌ Configurazioni vulnerabili
AddType application/x-httpd-php .php

# ✅ Configurazioni sicure
<FilesMatch "\.php$">
    SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>

Riferimento: configurazione vulnerabile vs. sicura

root@kitploit:~
# VULNERABILE
<VirtualHost *:80>
    DocumentRoot /var/www/html
    AddType application/x-httpd-php .php     # ← innesca la CVE
    DirectoryIndex index.php
</VirtualHost>

# SICURO
<VirtualHost *:80>
    DocumentRoot /var/www/html
    <FilesMatch "\.php$">
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
    </FilesMatch>
    DirectoryIndex index.php
</VirtualHost>

CVE correlate

CVEVersioneDescrizione
Scarica lo strumento
FlagTipoPredefinitoDescrizione
--targetURL(obbligatorio)URL di base del server Apache da testare
--pathsPATH [PATH ...]elenco integratoUno o più percorsi PHP da sondare direttamente
--wordlistFILE—Percorso di un file wordlist (un percorso per riga)
--no-directory-checkflagoffSalta il probe di subrequest/directory-index (Probe B)
--timeoutint (secondi)10Timeout per richiesta
--delayfloat (secondi)0.0Ritardo tra le richieste (rate limiting)
--no-verify-sslflagoffDisabilita la verifica del certificato SSL
--outputFILE—Scrive il report JSON completo in questo file
--verboseflagoffAbilita l'output di debug
CVE-2024-398842.4.0Regressione originale di divulgazione del codice sorgente
CVE-2024-407252.4.61Correzione incompleta — stessa classe di bug
CVE-2024-408982.4.61SSRF separata in mod_rewrite (solo Windows)