Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-29464 — CVE-2022-29464 के लिए Python एक्सप्लॉइट, WSO2 सर्वरों में एक बिना प्रमाणीकरण वाली मनमानी फ़ाइल अपलोड भेद्यता, जो दुर्भावनापूर्ण JSP फ़ाइल अपलोड के माध्यम से रिमोट कोड निष्पादन सक्षम बनाती है। | Kitploit
उपकरण/GitHubGitHub/hakivvi/cve-2022-29464
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंग
GitHubhakivvi/cve-2022-29464

CVE-2022-29464

CVE-2022-29464 के लिए Python एक्सप्लॉइट, WSO2 सर्वरों में एक बिना प्रमाणीकरण वाली मनमानी फ़ाइल अपलोड भेद्यता, जो दुर्भावनापूर्ण JSP फ़ाइल अपलोड के माध्यम से रिमोट कोड निष्पादन सक्षम बनाती है।

रिपॉजिटरी देखें
37888184 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2022-29464

WSO2 RCE (CVE-2022-29464) एक्सप्लॉइट और राइटअप।

विवरण

CVE-2022-29464 WSO2 पर एक महत्वपूर्ण कमजोरी है जिसे Orange Tsai ने खोजा था। यह कमजोरी एक अप्रमाणित, अप्रतिबंधित मनमानी फ़ाइल अपलोड है जो अप्रमाणित हमलावरों को दुर्भावनापूर्ण JSP फ़ाइलें अपलोड करके WSO2 सर्वरों पर RCE प्राप्त करने की अनुमति देती है।

कमजोर अपलोड रूट /fileupload है जिसे FileUploadServlet सर्वलेट द्वारा संभाला जाता है। और यह IAM द्वारा असुरक्षित रूट है, जैसा कि हम indentity.xml कॉन्फ़िगरेशन फ़ाइल में देख सकते हैं:```xml

और डिफ़ॉल्ट लॉगिन उपाय द्वारा असुरक्षित भी, `handleSecurity()` WSO2 द्वारा सेवित विभिन्न रूटों को सुरक्षित करने के लिए जिम्मेदार फ़ंक्शन है और प्राप्त HTTP अनुरोधों पर सुरक्षा जांच करने के लिए एक तंत्र प्रदान करता है, `handleSecurity()` `CarbonUILoginUtil.handleLoginPageRequest()` को कॉल करेगा और इसके वापसी मान के आधार पर अनुरोधित URI तक पहुंच की अनुमति या अस्वीकार करने का निर्णय लिया जाएगा:```java
    public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
	[snipped]
        if ((val = CarbonUILoginUtil.handleLoginPageRequest(requestedURI, request, response,
                authenticated, context, indexPageURL)) != CarbonUILoginUtil.CONTINUE) {
            if (val == CarbonUILoginUtil.RETURN_TRUE) {
                return true;
            } else {
                return false;
            }
        }
	[snipped]
    }

CarbonUILoginUtil.handleLoginPageRequest() CarbonUILoginUtil.RETURN_TRUE वापस करता है जब रूट /fileupload है:```java protected static int handleLoginPageRequest(String requestedURI, HttpServletRequest request, HttpServletResponse response, boolean authenticated, String context, String indexPageURL) throws IOException { boolean isTryIt = requestedURI.indexOf("admin/jsp/WSRequestXSSproxy_ajaxprocessor.jsp") > -1; boolean isFileDownload = requestedURI.endsWith("/filedownload"); if ((requestedURI.indexOf("login.jsp") > -1 || requestedURI.indexOf("login_ajaxprocessor.jsp") > -1 || requestedURI.indexOf("admin/layout/template.jsp") > -1 || isFileDownload || requestedURI.endsWith("/fileupload") || requestedURI.indexOf("/fileupload/") > -1 || requestedURI.indexOf("login_action.jsp") > -1 || isTryIt || requestedURI.indexOf("tryit/JAXRSRequestXSSproxy_ajaxprocessor.jsp") > -1) && !requestedURI.contains(";")) {

        if ((requestedURI.indexOf("login.jsp") > -1
                || requestedURI.indexOf("login_ajaxprocessor.jsp") > -1 || requestedURI
                .indexOf("login_action.jsp") > -1) && authenticated) {
            [snipped]
        } else if ((isTryIt || isFileDownload) && !authenticated) {
            [snipped]
        } else if (requestedURI.indexOf("login_action.jsp") > -1 && !authenticated) {
            [snipped]
        } else {
			if (log.isDebugEnabled()) {
				log.debug("Skipping security checks for " + requestedURI);
			}
            return RETURN_TRUE;
        }
    }

    return CONTINUE;
}
`CarbonUILoginUtil.handleLoginPageRequest()` के `CarbonUILoginUtil.RETURN_TRUE` लौटाने पर, `handleSecurity()` `true` लौटाएगा, फिर बिना प्रमाणीकरण के `/fileupload` तक पहुँच प्रदान की जाएगी।

`FileUploadServlet` सर्वलेट और [`init()`](https://github.com/wso2/carbon-kernel/blob/d47232dfb2b26c0ef18a74e2ef4aa503caa59697/core/org.wso2.carbon.ui/src/main/java/org/wso2/carbon/ui/transports/FileUploadServlet.java#L71) के माध्यम से, और विधि कॉलों की एक श्रृंखला के द्वारा, अंततः `carbon.xml` कॉन्फ़िगरेशन फ़ाइल से कई अपलोड फ़ाइल स्वरूपों/क्रियाओं को, प्रत्येक स्वरूप को संभालने वाले ऑब्जेक्ट के साथ लोड करता है।```java
    public void init(ServletConfig servletConfig) throws ServletException {
        this.servletConfig = servletConfig;
        try {
            fileUploadExecutorManager = new FileUploadExecutorManager(bundleContext, configContext, webContext);
            //Registering FileUploadExecutor Manager as an OSGi service
            bundleContext.registerService(FileUploadExecutorManager.class.getName(), fileUploadExecutorManager, null);
        } catch (CarbonException e) {
            log.error("Exception occurred while trying to initialize FileUploadServlet", e);
            throw new ServletException(e);
        }
    }

के FileUploadExecutorManager वर्ग कंस्ट्रक्टर इस प्रकार है:```java public FileUploadExecutorManager(BundleContext bundleContext, ConfigurationContext configCtx, String webContext) throws CarbonException { this.bundleContext = bundleContext; this.configContext = configCtx; this.webContext = webContext; this.loadExecutorMap(); }

कंस्ट्रक्टर प्राइवेट मेथड [`loadExecutorMap()`](https://github.com/wso2/carbon-kernel/blob/d47232dfb2b26c0ef18a74e2ef4aa503caa59697/core/org.wso2.carbon.ui/src/main/java/org/wso2/carbon/ui/transports/fileupload/FileUploadExecutorManager.java#L131) को कॉल करता है, जहाँ कॉन्फ़िगरेशन लोडिंग होती है:```java
    private void loadExecutorMap() throws CarbonException {
        [snipped]
                try {
            documentElement = XMLUtils.toOM(serverConfiguration.getDocumentElement());
        } catch (Exception e) {
            String msg = "Unable to read Server Configuration.";
            log.error(msg);
            throw new CarbonException(msg, e);
        }
        [snipped]
        OMElement fileUploadConfigElement =
                documentElement.getFirstChildWithName(
                        new QName(ServerConstants.CARBON_SERVER_XML_NAMESPACE, "FileUploadConfig"));
        for (Iterator iterator = fileUploadConfigElement.getChildElements(); iterator.hasNext();) {
            OMElement mapppingElement = (OMElement) iterator.next();
            if (mapppingElement.getLocalName().equalsIgnoreCase("Mapping")) {
                OMElement actionsElement =
                        mapppingElement.getFirstChildWithName(
                                new QName(ServerConstants.CARBON_SERVER_XML_NAMESPACE, "Actions"));
                String confPath = System.getProperty(CarbonBaseConstants.CARBON_CONFIG_DIR_PATH);
        [snipped]

फ़ाइल अपलोड प्रारूप कॉन्फ़िगरेशन XML कॉन्फ़िगरेशन फ़ाइल में FileUploadConfig नेमस्पेस के अंतर्गत है, यह डिफ़ॉल्ट कॉन्फ़िगरेशन है:```xml 100

    <Mapping>
        <Actions>
            <Action>keystore</Action>
            <Action>certificate</Action>
            <Action>*</Action>
        </Actions>
        <Class>org.wso2.carbon.ui.transports.fileupload.AnyFileUploadExecutor</Class>
    </Mapping>
टूल डाउनलोड करें