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.

FeedContattoPrivacy© 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.

Vedi Repository
392 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-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
pip install requests

Installazione

# 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

python3 cve_2024_40725_scanner.py --target <URL> [OPTIONS]

Opzioni

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

Esempi

# 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.

# 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

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)

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

============================================================
  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)

{
  "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
Scarica lo strumento