हांगकांग एनजीओ ने मैप प्लगइन XSS(CVE20261096) की चेतावनी दी

वर्डप्रेस बेस्ट-wp-google-map प्लगइन में क्रॉस साइट स्क्रिप्टिंग (XSS)
प्लगइन का नाम बेस्ट-डब्ल्यूपी-गूगल-मैप
कमजोरियों का प्रकार क्रॉस-साइट स्क्रिप्टिंग (XSS)
CVE संख्या सीवीई-2026-1096
तात्कालिकता मध्यम
CVE प्रकाशन तिथि 2026-02-13
स्रोत URL सीवीई-2026-1096

तत्काल: प्रमाणित (योगदानकर्ता) संग्रहीत XSS बेस्ट-डब्ल्यूपी-गूगल-मैप (≤2.1) में — वर्डप्रेस साइट मालिकों और डेवलपर्स को अब क्या करना चाहिए

सारांश: एक संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता (CVE-2026-1096) का खुलासा किया गया है जो बेस्ट-डब्ल्यूपी-गूगल-मैप प्लगइन (संस्करण ≤ 2.1) को प्रभावित करता है। यह समस्या एक प्रमाणित उपयोगकर्ता को योगदानकर्ता विशेषाधिकार के साथ “latitude” विशेषता के माध्यम से एक दुर्भावनापूर्ण पेलोड इनपुट करने की अनुमति देती है जिसे बाद में पृष्ठ संदर्भ में संग्रहीत और निष्पादित किया जा सकता है। यह पोस्ट जोखिम, पहचान, तात्कालिक निवारण, दीर्घकालिक सुधार, सुरक्षित कोडिंग पैटर्न, और व्यावहारिक नियंत्रण कदमों को समझाती है - जो एक हांगकांग सुरक्षा विशेषज्ञ के दृष्टिकोण से लिखी गई है।.

सामग्री की तालिका

क्या रिपोर्ट किया गया

बेस्ट-डब्ल्यूपी-गूगल-मैप वर्डप्रेस प्लगइन में एक संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता की रिपोर्ट की गई थी (जो 2.1 तक और शामिल संस्करणों को प्रभावित करती है)। यह भेद्यता "latitude" नामक शॉर्टकोड विशेषता में दुर्भावनापूर्ण इनपुट द्वारा सक्रिय होती है। अक्षांश. योगदानकर्ता भूमिका स्तर पर एक प्रमाणित उपयोगकर्ता एक पेलोड प्रस्तुत कर सकता है जिसे प्लगइन द्वारा संग्रहीत किया जाता है और बाद में उचित सफाई के बिना प्रस्तुत किया जाता है, जिससे शॉर्टकोड वाले पृष्ठ को देखने पर आगंतुकों (और संभावित रूप से प्रशासकों/संपादकों) के संदर्भ में मनमाने स्क्रिप्ट का निष्पादन होता है।.

  • CVE: सीवीई-2026-1096
  • कमजोरियों का प्रकार: संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS)
  • प्रभावित संस्करण: ≤ 2.1
  • आवश्यक विशेषाधिकार: योगदानकर्ता (प्रमाणित)
  • CVSS (रिपोर्ट किया गया): 6.5 (मध्यम)
  • शोध को श्रेय दिया गया: theviper17y

स्टोर किया गया XSS खतरनाक है: दुर्भावनापूर्ण JavaScript किसी भी आगंतुक के ब्राउज़र में चलता है जो प्रभावित पृष्ठ को लोड करता है - संभवतः सत्र चुराना, विशेषाधिकार प्राप्त उपयोगकर्ताओं के रूप में क्रियाएँ करना, मैलवेयर वितरित करना, या सामग्री को विकृत करना। यह लेख व्यावहारिक शमन, पहचान, और सुरक्षित कोडिंग मार्गदर्शन पर केंद्रित है। शोषण पेलोड या चरण-दर-चरण शोषण निर्देश जानबूझकर छोड़े गए हैं ताकि हमलावरों की सहायता से बचा जा सके।.

यह आपके लिए क्यों महत्वपूर्ण है

कई साइट के मालिक मानते हैं कि केवल प्रशासक ही साइट को नुकसान पहुंचा सकते हैं। वर्डप्रेस का योगदानकर्ता भूमिका सामग्री निर्माण की अनुमति देने के लिए डिज़ाइन की गई है, लेकिन जब शॉर्टकोड शामिल होते हैं तो इसका दुरुपयोग किया जा सकता है:

  • योगदानकर्ता अक्सर पोस्ट सामग्री में शॉर्टकोड और विशेषताएँ डाल सकते हैं।.
  • शॉर्टकोड रेंडर पर निष्पादित होते हैं; यदि कोई प्लगइन HTML/JS में एम्बेड करने से पहले विशेषता मानों को साफ़ करने में विफल रहता है, तो स्टोर किया गया XSS संभव है।.
  • स्टोर किया गया XSS हमलावरों को एक स्थायी foothold देता है: दुर्भावनापूर्ण स्क्रिप्ट डेटाबेस में रहती है और जब भी पृष्ठ देखा जाता है, चलती है।.
  • यदि स्टोर किया गया XSS एक प्रशासक के ब्राउज़र में चलता है (उदाहरण के लिए सामग्री समीक्षा या पूर्वावलोकन के दौरान), तो हमलावर बैकडोर बनाने या क्रेडेंशियल्स को निकालने के लिए बढ़ा सकता है।.

यहां तक कि जब स्वचालित स्कोर एक भेद्यता को “मध्यम” के रूप में चिह्नित करते हैं, तो संचालनात्मक प्रभाव गंभीर हो सकता है कि कौन संक्रमित सामग्री को देखता है और साइट की कॉन्फ़िगरेशन क्या है।.

जोखिम और शोषण परिदृश्य

संभावित हमले के वेक्टर और कमजोर साइटों के लिए परिणाम:

  • योगदानकर्ता एक पोस्ट प्रस्तुत करता है जिसमें दुर्बल शॉर्टकोड होता है जिसमें दुर्भावनापूर्ण इनपुट होता है अक्षांश. सामग्री डेटाबेस में सहेजी जाती है।.
  • एक साइट आगंतुक पृष्ठ खोलता है; स्टोर किया गया स्क्रिप्ट आगंतुक के ब्राउज़र में निष्पादित होता है। परिणामों में फ़िशिंग पृष्ठों पर रीडायरेक्ट, अवांछित विज्ञापन, ट्रैकिंग, या क्रिप्टोमाइनिंग शामिल हैं।.
  • एक संपादक या प्रशासक पोस्ट का पूर्वावलोकन करता है। स्क्रिप्ट मौजूदा कुकीज़/सत्र के माध्यम से उच्च विशेषाधिकार के साथ निष्पादित होती है, प्रशासनिक क्रियाएँ सक्षम करती है: उपयोगकर्ताओं का निर्माण, सेटिंग्स बदलना, बैकडोर लिखना, या क्रेडेंशियल्स को निकालना।.
  • साइटें जो ड्राफ्ट या पूर्वावलोकन को गैर-प्रशासक डैशबोर्ड पर उजागर करती हैं, जोखिम को और बढ़ा देती हैं।.

स्टोर किया गया XSS उन साइटों के लिए उच्च प्राथमिकता के रूप में मानें जहाँ विशेषाधिकार प्राप्त उपयोगकर्ता अविश्वसनीय सामग्री देख सकते हैं।.

इसे कौन शोषित कर सकता है (विशेषाधिकार विचार)

प्रकटीकरण से पता चलता है कि योगदानकर्ता भूमिका पेलोड को स्टोर करने के लिए पर्याप्त है। भूमिका संदर्भ:

  • योगदानकर्ता: अपने स्वयं के पोस्ट बना और संपादित कर सकते हैं लेकिन प्रकाशित नहीं कर सकते। वे शॉर्टकोड शामिल कर सकते हैं।.
  • संपादक/प्रशासक: समीक्षा के दौरान पोस्ट देख सकते हैं। यदि वे संक्रमित सामग्री देखते हैं, तो वृद्धि संभव है।.

कई योगदानकर्ताओं की अनुमति देने वाले बहु-लेखक या सामुदायिक साइटों के लिए प्रतिक्रिया को प्राथमिकता दें या जहां पूर्वावलोकन संपादकों/प्रशासकों द्वारा देखे जाते हैं।.

कैसे पता करें कि आप प्रभावित हैं

सुरक्षा का अनुमान न लगाएं — व्यवस्थित रूप से खोजें:

1. पोस्ट सामग्री में त्वरित WP‑CLI खोज

यदि आपके पास WP‑CLI पहुंच है:

wp db query "SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%best_wp_google_map%latitude=%' OR post_content LIKE '%[best_wp_google_map%latitude=%';"

आवश्यकतानुसार शॉर्टकोड नाम और DB उपसर्ग समायोजित करें।.

2. MySQL प्रत्यक्ष क्वेरी

SELECT ID, post_title, post_content
FROM wp_posts
WHERE post_content LIKE '%latitude=%best_wp_google_map%' OR post_content LIKE '%[best_wp_google_map %latitude=%';

3. निर्यातित सामग्री के लिए Grep

grep -R --line-number "\[best_wp_google_map.*latitude=" *.xml

4. पोस्टमेटा और विकल्पों की खोज करें

wp db query "SELECT * FROM wp_postmeta WHERE meta_value LIKE '%latitude=%best_wp_google_map%';"
wp db query "SELECT * FROM wp_options WHERE option_value LIKE '%best_wp_google_map%latitude=%';"

5. मैलवेयर स्कैनर का उपयोग करें

संदिग्ध टैग या एन्कोडेड पेलोड का पता लगाने के लिए एक प्रतिष्ठित स्कैनर चलाएं <script> पोस्ट और विकल्प तालिकाओं में।.

6. उपयोगकर्ता गतिविधि लॉग की समीक्षा करें

उन योगदानकर्ता खातों द्वारा बनाए गए/संशोधित पोस्ट के लिए संशोधनों और उपयोगकर्ता लॉग की जांच करें जिन्हें आप नहीं पहचानते।.

7. विसंगतियों की जांच करें

अप्रत्याशित प्रशासनिक उपयोगकर्ताओं, बदले गए थीम/प्लगइन्स, संशोधित फ़ाइलों की तलाश करें wp-content, या असामान्य आउटगोइंग कनेक्शन।.

यदि कोई हिट्स में शामिल हैं <script>, 11. साइट मालिकों के लिए तात्कालिक कदम, जावास्क्रिप्ट: यूआरआई, या यूआरएल-कोडित समकक्ष, उन्हें संभावित रूप से दुर्भावनापूर्ण मानें और तुरंत सुधारें।.

तात्कालिक नियंत्रण कदम (साइट मालिकों और प्रशासकों के लिए)

  1. जांच करते समय एक्सपोजर को सीमित करने के लिए साइट को रखरखाव मोड में डालें (यदि संभव हो)।.
  2. बेस्ट-वीपी-गूगल-मैप प्लगइन को अस्थायी रूप से निष्क्रिय करें:
    wp प्लगइन निष्क्रिय करें best-wp-google-map
  3. पूर्वावलोकन और अविश्वसनीय सामग्री रेंडरिंग को रोकें: सामग्री की समीक्षा होने तक संपादक/व्यवस्थापक पूर्वावलोकन को प्रतिबंधित करें या प्रभावित पोस्ट को ड्राफ्ट/निजी में स्थानांतरित करें।.
  4. विशेषाधिकार प्राप्त खातों को लॉक करें: संपादक/व्यवस्थापक खातों के लिए पासवर्ड रीसेट करने के लिए मजबूर करें और जहां संभव हो सत्रों को अमान्य करें; संदिग्ध खातों को हटा दें।.
  5. संग्रहीत पेलोड को खोजें और निष्क्रिय करें: कमजोर शॉर्टकोड वाली पोस्ट को हटा दें या साफ करें। ऐसे गुणों को सुरक्षित संख्यात्मक मानों के साथ बदलने की प्राथमिकता दें। यदि सुनिश्चित नहीं हैं, तो एक साफ पूर्व-समझौता बैकअप से पुनर्स्थापित करें।.
  6. साइट को अन्य संकेतकों के लिए स्कैन करें: अनधिकृत संशोधनों के लिए थीम, प्लगइन्स, अपलोड और wp-config को स्कैन करें।.
  7. लॉग की निगरानी करें: संदिग्ध गतिविधियों के लिए वेब सर्वर लॉग और आउटगोइंग कनेक्शनों की जांच करें।.
  8. यदि अनिश्चित हैं, तो साइट को ऑफलाइन ले जाएं और एक घटना प्रतिक्रिया पेशेवर को शामिल करें।.

वर्चुअल पैचिंग और WAF नियम (उदाहरण जो आप लागू कर सकते हैं)

यदि आप सर्वर-स्तरीय नियम (ModSecurity) जोड़ सकते हैं या एप्लिकेशन फ़िल्टर लागू कर सकते हैं, तो वर्चुअल पैचिंग शोषण प्रयासों को रोक सकती है जब तक कि एक उचित प्लगइन अपडेट उपलब्ध न हो। वैध उपयोग को तोड़ने वाले अत्यधिक व्यापक नियमों से बचें; सावधानी से परीक्षण करें।.

1) ModSecurity उदाहरण (Apache/nginx के साथ ModSecurity)

SecRule ARGS_NAMES|ARGS|REQUEST_URI "(?i)latitude=.*(<|%3C|javascript:|on\w+=|data:text/javascript)" \
    "id:1001001,phase:2,block,log,msg:'Block suspicious latitude attribute containing XSS patterns',severity:2"

शॉर्टकोड सामग्री प्रस्तुत किए जाने वाले अनुरोध संदर्भ के लिए ARGS दायरे को अनुकूलित करें (पोस्ट सामग्री फ़ॉर्म)।.

2) Nginx + lua / कस्टम WAF नियम (छद्म)

if ($request_method = POST) {
    set $bad_latitude 0;
    if ($request_body ~* "latitude=.*(<|%3C|javascript:|on[a-z]+=)") {
        set $bad_latitude 1;
    }
    if ($bad_latitude = 1) { return 403; }
}

3) वर्डप्रेस फ़िल्टर-स्तरीय नियम (उदाहरण)

// Example: block suspicious shortcode attributes on save
add_filter( 'content_save_pre', function( $content ) {
    if ( preg_match( '/\[best_wp_google_map[^\]]*latitude\s*=\s*["\']?[^"\']*(<|%3C|javascript:|on[a-z]+=)/i', $content ) ) {
        wp_die( 'Blocked: Suspicious shortcode attribute detected. Remove any script from shortcode attributes.' );
    }
    return $content;
}, 10 );

4) रेंडर समय पर रक्षाात्मक सफाई (सुरक्षित बैकअप)

यदि संग्रहीत सामग्री पहले से मौजूद है और आप तुरंत DB प्रविष्टियों को साफ़ नहीं कर सकते हैं, तो अस्थायी समाधान के रूप में प्रदर्शन से पहले पोस्ट आउटपुट को फ़िल्टर करें:

add_filter( 'the_content', function( $content ) {;

नोट: रेंडर-समय फ़िल्टरिंग जोखिम को कम करती है लेकिन प्लगइन के अंदर सही सर्वर-साइड फ़िक्स का विकल्प नहीं है।.

प्लगइन लेखकों के लिए शॉर्टकोड विशेषताओं को सुरक्षित रूप से साफ़ करने का तरीका

प्लगइन डेवलपर्स को सभी शॉर्टकोड विशेषताओं को मान्य और साफ़ करना चाहिए। उपयोगकर्ता इनपुट पर कभी भरोसा न करें। एक अक्षांश विशेषता:

  • संख्यात्मक प्रकार और सीमा लागू करें: अक्षांश -90 और 90 के बीच होना चाहिए; देशांतर -180 और 180 के बीच होना चाहिए।.
  • फ्लोट में कास्ट करें और मान्य करें is_{{pc_skip_field}} या filter_var().
  • आउटपुट से पहले एस्केप करें esc_attr() विशेषताओं के लिए या esc_js()/wp_json_encode() जावास्क्रिप्ट संदर्भों के लिए।.
  • उपयोग करें shortcode_atts() उचित डिफ़ॉल्ट प्रदान करने के लिए।.

सुरक्षित विशेषता हैंडलिंग का उदाहरण (PHP):

function bpgm_map_shortcode( $atts = [] ) {
    $atts = shortcode_atts( array(
        'latitude'  => '',
        'longitude' => '',
    ), $atts, 'best_wp_google_map' );

    $lat_raw = trim( $atts['latitude'] );
    $lon_raw = trim( $atts['longitude'] );

    if ( $lat_raw === '' || ! is_ $lat_raw  ) {
        return '';
    }
    if ( $lon_raw === '' || ! is_ $lon_raw  ) {
        return '';
    }

    $lat = floatval( $lat_raw );
    $lon = floatval( $lon_raw );

    if ( $lat < -90 || $lat > 90 || $lon < -180 || $lon > 180 ) {
        return '';
    }

    $lat_esc = esc_attr( $lat );
    $lon_esc = esc_attr( $lon );

    $html  = '<div class="bpgm-map" data-lat="' . $lat_esc . '" data-lon="' . $lon_esc . '"></div>';
    $html .= '<script>initMyMap(' . wp_json_encode( $lat ) . ', ' . wp_json_encode( $lon ) . ');</script>';

    return $html;
}

मुख्य बिंदु: कभी भी कच्चे विशेषता मानों को HTML या JS में न दिखाएँ; उचित एस्केपिंग और एन्कोडिंग फ़ंक्शंस का उपयोग करें।.

संग्रहीत पेलोड को सुरक्षित रूप से खोजने और साफ करने

जब आप संदिग्ध पोस्ट पाते हैं, तो एक सतर्क सुधार योजना का पालन करें:

  1. प्रभावित पोस्ट को ऑफ़लाइन समीक्षा के लिए निर्यात करें और उन्हें संगरोध करें।.
  2. दुर्भावनापूर्ण विशेषता मानों को साफ़ किए गए संख्यात्मक मानों से बदलें या विशेषता को हटा दें। WP-CLI बड़े संचालन के लिए उपयोगी है। उदाहरण (पहले DB का बैकअप लें):
wp db query "UPDATE wp_posts SET post_content = REGEXP_REPLACE(post_content, '(latitude\\s*=\\s*\"?)[^\"\\]\\s]*(\"?)', '\\1REDACTED\\2') WHERE post_content REGEXP 'latitude\\s*=\\s*[^\\\"\\]]+';"

यह अक्षांश विशेषता मानों को बदलता है REDACTED. अपने MySQL संस्करण के लिए समायोजित करें और पहले एक प्रति पर परीक्षण करें।.

  1. यदि सामग्री को मैनुअल समीक्षा की आवश्यकता है, तो पोस्ट को सेट करें ड्राफ्ट या निजी जब तक साफ न हो जाए।.
  2. यदि संदूषण व्यापक है, तो पूर्व-समझौता बैकअप से पुनर्स्थापित करें।.

पोस्ट-समझौता चेकलिस्ट

  • सभी उपयोगकर्ताओं के लिए सक्रिय सत्रों को रद्द करें।.
  • सभी व्यवस्थापक/संपादक खातों के लिए पासवर्ड रीसेट करें।.
  • साइट पर संग्रहीत API कुंजी और तीसरे पक्ष के क्रेडेंशियल्स को घुमाएं।.
  • निरीक्षण करें 7. wp_users अज्ञात उपयोगकर्ताओं के लिए जिनकी भूमिकाएँ ऊँची हैं।.
  • फ़ाइल की अखंडता की पुष्टि करें: साइट फ़ाइलों की तुलना विश्वसनीय स्रोतों से साफ़ प्रतियों के साथ करें।.
  • एक पूर्ण मैलवेयर स्कैन चलाएँ और छिपे हुए कोड के लिए थीम/प्लगइन फ़ाइलों का ऑडिट करें।.
  • संशोधित कोर, प्लगइन और थीम फ़ाइलों को साफ़ मूल के साथ बदलें।.
  • यदि आप आत्मविश्वास से कलाकृतियों को हटा नहीं सकते हैं, तो एक साफ़ बैकअप से पुनर्स्थापित करें।.
  • एक्सेस लॉग की समीक्षा करें और हितधारकों को सूचित करें। यदि संवेदनशील डेटा उजागर हुआ है तो पेशेवर घटना प्रतिक्रिया पर विचार करें।.

दीर्घकालिक सिफारिशें

समान कमजोरियों से जोखिम को कम करने के लिए:

  1. न्यूनतम विशेषाधिकार और कार्यप्रवाह: योगदानकर्ता खातों को सीमित करें और सख्त संपादकीय समीक्षा प्रक्रियाओं को लागू करें।.
  2. प्लगइन स्वच्छता: अप्रयुक्त प्लगइन्स को हटा दें और शेष प्लगइन्स को अपडेट रखें।.
  3. सुरक्षित विकास: इनपुट को जल्दी मान्य और साफ करें, सही संदर्भ के लिए आउटपुट को एस्केप करें, सफाई के लिए यूनिट टेस्ट लिखें, और CI में सुरक्षा जांच शामिल करें।.
  4. गहराई में रक्षा: सामान्य शोषण पैटर्न को ब्लॉक करने के लिए WAF या सर्वर नियमों का उपयोग करें, नियमित मैलवेयर स्कैन चलाएं, और फ़ाइल अखंडता निगरानी सक्षम करें।.
  5. निगरानी और अलर्टिंग: संदिग्ध अनुरोधों को लॉग करें और अचानक भूमिका परिवर्तनों या नए प्लगइन इंस्टॉलेशन पर नज़र रखें।.
  6. बैकअप और पुनर्प्राप्ति: अलग बैकअप बनाए रखें और नियमित रूप से पुनर्स्थापना प्रक्रियाओं का परीक्षण करें।.

शोधकर्ता क्रेडिट और जिम्मेदार खुलासा

इस भेद्यता की जिम्मेदारी से रिपोर्ट शोधकर्ता द्वारा की गई थी theviper17y. जिम्मेदार प्रकटीकरण रखरखावकर्ताओं को सुधार और शमन समन्वयित करने की अनुमति देता है। यदि आप एक डेवलपर के रूप में रिपोर्ट प्राप्त करते हैं, तो रिपोर्टर के साथ जुड़ें, समस्या को मान्य करें, एक सुधार तैयार करें, और स्पष्ट शमन मार्गदर्शन के साथ प्रकटीकरण का समन्वय करें।.

समापन विचार

शॉर्टकोड को रेंडर करने वाले प्लगइन्स में स्टोर की गई XSS एक सामान्य और प्रभावशाली खतरा बनी हुई है। यहां तक कि निम्न-privilege भूमिकाएं भी स्थायी पेलोड पेश कर सकती हैं जो कई आगंतुकों और, महत्वपूर्ण रूप से, साइट प्रशासकों को प्रभावित करती हैं। व्यावहारिक तात्कालिक प्राथमिकताएँ:

  1. पहचानें - कमजोर शॉर्टकोड विशेषता की घटनाओं के लिए अपने डेटाबेस की खोज करें।.
  2. सीमित करें - यदि आप तुरंत शमन नहीं कर सकते हैं तो प्लगइन को निष्क्रिय करें, संग्रहीत सामग्री को साफ करें, और विशेषाधिकार प्राप्त उपयोगकर्ता क्रियाओं को प्रतिबंधित करें।.
  3. सुरक्षा करें - डेटा को साफ करते समय स्पष्ट शोषण पैटर्न को ब्लॉक करने के लिए संवेदनशील WAF/सर्वर नियम या आउटपुट फ़िल्टर लागू करें।.
  4. सुधारें - उपलब्ध होने पर आधिकारिक प्लगइन पैच के लिए अपडेट करें या उचित मान्यता/एस्केपिंग के साथ प्लगइन कोड को ठीक करें।.
  5. पुनर्प्राप्त करें - यदि आप वृद्धि का संदेह करते हैं तो पोस्ट-समझौता कदमों का पालन करें।.

सतर्क रहें, उपयोगकर्ता इनपुट को मान्य करें, और गहराई में रक्षा अपनाएं। इन भेद्यताओं की श्रेणियों को रोकने के लिए प्लगइन कोड में सफाई और एस्केपिंग को प्राथमिकता दें।.

— हांगकांग सुरक्षा विशेषज्ञ
0 शेयर:
आपको यह भी पसंद आ सकता है

सुरक्षा अलर्ट गुटेना फॉर्म सेटिंग्स परिवर्तन (CVE20261674)

वर्डप्रेस गुटेना फॉर्म में सेटिंग्स परिवर्तन - संपर्क फॉर्म, सर्वे फॉर्म, फीडबैक फॉर्म, बुकिंग फॉर्म, और कस्टम फॉर्म बिल्डर प्लगइन