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
log4jcheck — Verifica una lista di URL per la vulnerabilità Log4j CVE-2021-44228 | Kitploit
Strumenti/GitHubGitHub/olafhaalstra/log4jcheck
Scanner di VulnerabilitàScanner di Vulnerabilità WebExploitRaccolta InformazioniSicurezza WebPenetration Testing
GitHubolafhaalstra/log4jcheck

log4jcheck

Verifica una lista di URL per la vulnerabilità Log4j CVE-2021-44228

Vedi Repository
514 anni 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

Checker Log4j CVE-2021-44228

Effettua controlli multithread su una lista di URL con richieste POST e GET in combinazione con parametri.

Fortemente ispirato dalla versione di NortwaveSecurity.

Configurazione

URL da controllare

La lista degli URL da controllare deve essere nel seguente formato (csv):

root@kitploit:~
description,URL,method,parameters
production,example.com/login,POST,"username,password"
staging,example.com/search,GET,"q"
development,example.com/,GETNP,""

Di conseguenza, verrà eseguita una richiesta POST su example.com/login con il seguente corpo raw: username={jndi:ldap...}&password={jndi:ldap...}

Allo stesso modo, verrà eseguita la seguente richiesta GET: example.com/search?q={jndi:ldap...}.

In alternativa, puoi specificare GETNP (GET No Parameters) per eseguire una GET sull'URL con il payload aggiunto: example.com/new/{jndi:ldap...}.

Inoltre, il payload viene inserito anche negli header User-Agent, Referer, X-Forwarded-For, Authentication per aumentare le possibilità di successo.

Se desideri controllare gli URL sia per GET, POST o GETNP, duplica la voce nel CSV.

Canary Token

Per configurare senza alcuna configurazione precedente, puoi utilizzare https://canarytokens.org/generate e creare un Log4Shell CanaryToken:

Canary Tokens

In alternativa, puoi configurare il tuo server DNS.

Esecuzione dello script

Installa le dipendenze utilizzando pip install-r requirements.txt. Modifica lo script per cambiare la seguente riga con il tuo canary token preferito:

root@kitploit:~
usage: log4jcheck.py [-h] -f FILE -u URL [-w WAIT] [-t TIMEOUT] [-p PREFIX] [-q THREADS] [-d DONE]

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  The CSV filename containing the URLs
  -u URL, --url URL     DNS subdomain URL on which th callback is performed
  -w WAIT, --wait WAIT  Number of seconds to wait before next request (default: 1)
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP timeout in seconds to use (default: 5)
  -p PREFIX, --prefix PREFIX
                        Type of prefix, see prefixes_injects for options. (default: 0, options 0-3)
  -q THREADS, --threads THREADS
                        Number of threads to distribute the work
  -d DONE, --done DONE  File where we can keep track of items that are done

Genera la cartella: /run/logs per l'output dei log. Qui puoi monitorare il progresso, nulla verrà inviato a stdout.

Ora lo script può essere eseguito, puntando lo script al CSV creato in precedenza con gli URL da controllare.

root@kitploit:~
python3 .\log4jcheck.py --file .\urls-example.csv --threads 2 --url "L4J.ujz5sgvgo7xuvn03ft9qrws5w.canarytokens.com/a" -w 0 -t 1

Controlla se il token è stato attivato dopo il completamento dello script. Sarai in grado di correlare quale applicazione ha attivato il token in base al UUID4 generato in combinazione con il parametro iniettato, ad esempio: 40852c3b-2d6b-4bd5-a91f-4416aa730619-username.

Test

Testato su log4shell-vulnerable-app. Modifica il file MainControll.java come segue:

root@kitploit:~
package fr.christophetd.log4shell.vulnerableapp;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@RestController
public class MainController {

    private static final Logger logger = LogManager.getLogger("HelloWorld");

    @GetMapping("/")
    public String index(@RequestHeader("X-Api-Version") String apiVersion) {
        logger.info("Received a request for API version " + apiVersion);
        return "Hello, world!";
    }

    @GetMapping("/test")
    public String testGet(@RequestParam String test) {
        logger.info("Received a request for test " + test);
        return "Test world!";
    }

    @PostMapping("/test")
    public String test(@RequestBody String test) {
        logger.info("Received a request for test " + test);
        return "Test world!";
    }

}

Compila ed esegui:

root@kitploit:~
gradle bootJar --no-daemon
java -jar .\build\libs\log4shell-vulnerable-app-0.0.1-SNAPSHOT.jar

Esegui log4jcheck con il seguente file urls.csv:

root@kitploit:~
description,URL,method,parameters
test,http://localhost:8080/test,POST,"test"
test,http://localhost:8080/test,GET,"test"

Le seguenti informazioni dovrebbero apparire nel log del canary token: Log input

Copertura:

I seguenti header HTTP sono coperti:

  • X-Api-Version
  • User-Agent
  • Referer
  • X-Druid-Comment
  • Origin
  • Location
  • X-Forwarded-For
  • Cookie
  • X-Requested-With
  • X-Forwarded-Host
  • Accept

Per ogni iniezione, sono possibili i seguenti prefissi JNDI:

  • 0: jndi:dns
  • 1: jndi:${lower:l}${lower:d}ap
  • 2: jndi:rmi
  • 3: jndi:ldap

AVVERTENZA

Nota che lo script effettua controlli solo su: User Agent e su qualsiasi parametro specificato per la richiesta POST o GET. Ciò causerà falsi negativi in casi in cui altri header, campi di input mancati, eccetera devono essere presi di mira per attivare la vulnerabilità. Sentiti libero di aggiungere ulteriori controlli allo script.

Licenza

Log4jcheck è un software open-source rilasciato sotto licenza MIT.

Scarica lo strumento