Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-22963 — CVE-2025-22963 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Teedy v1.11 में एक CSRF भेद्यता जो उपयोगकर्ता सूचना परिवर्तन एंडपॉइंट के माध्यम से खाता अधिग्रहण की अनुमति देती है। | Kitploit
उपकरण/GitHubGitHub/gmh5225/cve-2025-22963
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगप्रमाणीकरण
GitHubgmh5225/cve-2025-22963

CVE-2025-22963

CVE-2025-22963 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Teedy v1.11 में एक CSRF भेद्यता जो उपयोगकर्ता सूचना परिवर्तन एंडपॉइंट के माध्यम से खाता अधिग्रहण की अनुमति देती है।

रिपॉजिटरी देखें
11 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

अवलोकन

Teedy संस्करण <= v1.11 में क्रॉस-साइट रिक्वेस्ट फोर्जरी(CSRF) भेद्यता दूरस्थ हमलावरों को किसी अंतिम उपयोगकर्ता को उस वेब एप्लिकेशन पर अपनी उपयोगकर्ता जानकारी (उपयोगकर्ता नाम, पासवर्ड, आदि...) बदलने के लिए मजबूर करने की अनुमति देती है जिसमें वे वर्तमान में प्रमाणित हैं।

भेद्यता

उपयोगकर्ता जानकारी बदलने का एंडपॉइंट /api/user/:username है।
यह एंडपॉइंट प्राधिकरण के लिए केवल कुकीज़ में auth_token की जाँच करता है।
auth_token मान अन्य origin वेबसाइटों से उपयोग किया जा सकता है।

root@kitploit:~
POST /api/user/admin HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 173
Origin: http://localhost:8080
Connection: keep-alive
Referer: http://localhost:8080/
Cookie: auth_token=890b02eb-3e4b-4134-a523-56093a25952b
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Priority: u=0

username=admin&groups=administrators&email=admin%40example.com&totp_enabled=false&storage_quota=0&storage_current=0&disabled=false&password=superSecure&passwordconfirm=superSecure

इसलिए, किसी अंतिम उपयोगकर्ता को ऐसी वेबसाइट पर जाने के लिए प्रेरित करना जो /api/user/:username पर अनुरोध भेजती है, अंतिम उपयोगकर्ता की जानकारी को दूरस्थ हमलावर की जानकारी में बदल देती है।
उपयोगकर्ता जानकारी में पासवर्ड शामिल है।
यह खाता अधिग्रहण (account takeover) का कारण बन सकता है।
यह हमला तब संभव है जब कोई दूरस्थ हमलावर किसी अंतिम उपयोगकर्ता का उपयोगकर्ता नाम जानता हो।
यह हमला व्यवस्थापक और अतिथि दोनों उपयोगकर्ताओं के विरुद्ध किया जा सकता है।
इस स्थिति में, एक हमलावर पीड़ित उपयोगकर्ता का पासवर्ड हमलावर के पासवर्ड पर सेट करके और हमलावर के पासवर्ड से पीड़ित उपयोगकर्ता में लॉग इन करके पीड़ित के उपयोगकर्ता को अपने कब्जे में ले सकता है।

समाधान

इस भेद्यता को ठीक करने के लिए, /api/user/:username पर अनुरोध करते समय CSRF टोकन संलग्न करें।

root@kitploit:~
POST /api/user/admin HTTP/1.1

...

username=admin&groups=administrators&email=admin%40example.com&totp_enabled=false&storage_quota=0&storage_current=0&disabled=false&password=superSecure&passwordconfirm=superSecure&csrf_token=<randomly generated token>

यह CSRF हमले से सुरक्षा प्रदान करता है क्योंकि एक हमलावर CSRF टोकन मान नहीं जानता है।
CSRF टोकन को सुरक्षित रूप से उपयोग करने के लिए, इन चरणों का पालन करें

  1. अनुरोध प्रपत्र में यादृच्छिक रूप से उत्पन्न CSRF टोकन एम्बेड करें।
  2. CSRF टोकन को अन्य origin वेबसाइटों द्वारा लीक होने से बचाने के लिए CORS HTTP हैडर का उपयोग करें।

पहले, docs/docs-web/src/main/java/com/sismics/docs/rest/util निर्देशिका में ये फ़ाइलें बनाएँ।

  • CSRFToken.java
  • RandomTokenGenerator.java CSRFToken.java
root@kitploit:~
package com.sismics.docs.rest.util;

import java.util.Map;
import java.util.HashMap;
import java.security.SecureRandom;
import com.sismics.docs.rest.util.RandomTokenGenerator;

/**
 * CSRF Token Class that manages users' CSRF Token
 */
public class CSRFToken {

    private static CSRFToken instance = new CSRFToken();
    private Map<String, String> tokenMap = new HashMap<String, String>();

    private CSRFToken() {}

    public static CSRFToken getInstance() {
        return instance;
    }

    public void setToken(String userName, String token) {
        tokenMap.put(userName, token);
    }

    public String getToken(String userName) {
        if (tokenMap.containsKey(userName)) {
            return tokenMap.get(userName);
        }
        // avoid using predictable string because bruteforcing this value could lead to bypass CSRF check
        return RandomTokenGenerator.generate();
    }

    public boolean validate(String userName, String token) {
        return this.getToken(userName).equals(token);
    }
}

RandomTokenGenerator.java

root@kitploit:~
package com.sismics.docs.rest.util;

import java.security.SecureRandom;
import java.lang.StringBuilder;
import java.lang.String;

/**
 * A token generator for CSRF Token
 */
public class RandomTokenGenerator {

    public static String generate() {
        byte[] bytes = new byte[16];
        SecureRandom rand = new SecureRandom();
        rand.nextBytes(bytes);
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    }
}

उसके बाद, इन फ़ाइलों को निम्नानुसार बदलें।

  • docs/docs-web/src/main/webapp/src/app/docs/controller/settings/SettingsUserEdit.js
  • docs/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java UserResourceDiff1 UserResourceDiff2 SettingsUserEditDiff1 SettingsUserEditDiff2

संदर्भ

sismics - Teedy(https://github.com/sismics/docs)
portswigger - क्रॉस-साइट रिक्वेस्ट फोर्जरी(CSRF)(https://portswigger.net/web-security/csrf)
Mozilla - एक्सेस नियंत्रण परिदृश्यों के उदाहरण(https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#examples_of_access_control_scenarios)

श्रेय

धन्यवाद, Ayato ने मुझे भेद्यता की रिपोर्ट करने का तरीका सिखाने के लिए।

टूल डाउनलोड करें