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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
JavaScript-Example — Seal Security उदाहरण — असुरक्षित npm ऐप (EJS CVE-2022-29078) को सीलबंद संस्करणों में सुधारा गया; GitHub Actions + Jenkins एकीकरण | Kitploit
उपकरण/GitHubGitHub/seal-sec-demo-2/javascript-example
भेद्यता विश्लेषणकोड विश्लेषणवेब एप्लिकेशन शोषणDevSecOpsआपूर्ति श्रृंखला सुरक्षालर्निंग और शिक्षा
GitHubseal-sec-demo-2/javascript-example

JavaScript-Example

Seal Security उदाहरण — असुरक्षित npm ऐप (EJS CVE-2022-29078) को सीलबंद संस्करणों में सुधारा गया; GitHub Actions + Jenkins एकीकरण

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
16 दिन पहलेअभी तक समीक्षित नहीं

Seal Security — JavaScript (npm) उदाहरण

एक minimal, जानबूझकर vulnerable Node.js/Express एप्लिकेशन, जिसका उपयोग अंत-से-अंत (end-to-end) यह प्रदर्शित करने के लिए किया जाता है कि Seal Security किसी ज्ञात CVE को कैसे remediate करता है — एक vulnerable डिपेंडेंसी को sealed (backported, drop‑in) संस्करण से बदलकर — आपके declared version ranges या आपके कोड में कोई बदलाव किए बिना।

इसे CI/CD में Seal CLI के लिए फ्रंट-टू-बैक स्मोक टेस्ट के रूप में डिज़ाइन किया गया है: ऐप चलाएँ, एक वास्तविक exploit ट्रिगर करें, Seal चलाएँ, और देखें कि वही exploit ब्लॉक हो जाता है।


यह उदाहरण क्या प्रदर्शित करता है

इकोसिस्टमJavaScript / npm
Vulnerable पैकेज[email protected] (2.7.4 पर resolve होता है)
CVECVE‑2022‑29078 — EJS सर्वर‑साइड टेम्पलेट इंजेक्शन → रिमोट कोड एक्ज़ीक्यूशन (CVSS 9.8)
Sealed (ठीक किया गया) संस्करणSeal के npm registry से ejs 2.7.4-sp1
एकीकरणएक बिल्ड स्टेप के रूप में Seal CLI — GitHub Actions और Jenkins दोनों के लिए दिखाया गया

ऐप अन्य जानी-मानी vulnerable डिपेंडेंसीज़ (lodash 4.17.5, json5 0.5.1, got 6.7.1) भी शामिल करता है, जिनमें से प्रत्येक को Seal एक sealed बिल्ड में भी remediate करता है।


Exploit कैसे काम करता है

ऐप पूरी URL query string को सीधे EJS render कॉल में फैला देता है:

root@kitploit:~
const data = { name: 'World', ...req.query };
res.render('page', data, ...)

EJS एक settings['view options'] ऑब्जेक्ट स्वीकार करता है जिसका outputFunctionName मान — बिना sanitize किए — संकलित टेम्पलेट फ़ंक्शन बॉडी में लिखा जाता है। इसलिए एक हमलावर मनमाना JavaScript इंजेक्ट कर सकता है जो Node.js प्रोसेस के विशेषाधिकारों के साथ सर्वर पर चलता है।

सामान्य अनुरोध

root@kitploit:~
/?name=alice

Hello alice! रेंडर करता है।

Exploit अनुरोध

root@kitploit:~
/?name=Hacker&settings[view%20options][outputFunctionName]=x;setTimeout(function()%7Bprocess.exit(1)%7D,3000);s

सर्वर setTimeout(function(){ process.exit(1) }, 3000) निष्पादित करता है। पेज पहले लोड होता है और स्पष्ट रूप से बताता है कि RCE सफल रहा; कुछ सेकंड बाद रीलोड करें और आपको ERR_CONNECTION_REFUSED मिलेगा — इंजेक्ट किए गए कोड ने सर्वर को kill कर दिया, जिससे यह साबित होता है कि मनमाना कोड चला।

3‑सेकंड की देरी जानबूझकर है: यह प्रोसेस के बाहर निकलने से पहले रिस्पॉन्स को ब्राउज़र तक पहुँचने देती है, ताकि आप "exploit succeeded" पेज देखें और फिर एक फ्रोज़न टैब के बजाय एक साफ़ क्रैश देखें।


रिपॉजिटरी संरचना

root@kitploit:~
.
├── index.js                       # the vulnerable Express app
├── views/                         # EJS templates
├── package.json / package-lock.json
├── Jenkinsfile                    # example Jenkins (Groovy) pipeline with the Seal stage
└── .github/workflows/
    ├── build-and-run.yml          # build + expose the app for browser testing
    └── seal-security.yml          # run Seal remediation, then start the app

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

Seal SaaS, Seal‑hosted है — आपके वातावरण में कुछ भी इंस्टॉल नहीं होता है, और सारा ट्रैफ़िक केवल TCP 443 पर आउटबाउंड HTTPS है। Remediation चलाने के लिए आपको चाहिए:

सीक्रेट / क्रेडेंशियल

इन्हें Settings → Secrets and variables → Actions (GitHub) या Manage Jenkins → Credentials (Jenkins) में कॉन्फ़िगर करें। टोकन को कभी भी रिपॉजिटरी में कमिट न करें।

आउटबाउंड 443 के लिए इन Seal होस्ट्स को allowlist करें: app.sealsecurity.io, authorization.sealsecurity.io, cli.sealsecurity.io, और — sealed npm पैकेजों के लिए — npm.sealsecurity.io। CLI बाइनरी github.com / objects.githubusercontent.com से डाउनलोड होती है।


इसे लोकल रूप से चलाएँ

root@kitploit:~
npm install
npm start           # → http://localhost:3001

http://localhost:3001/?name=alice खोलें (काम करता है), फिर ऊपर दिया गया exploit URL खोलें (सर्वर क्रैश हो जाता है)।


Seal के साथ Remediate करें

Seal CLI एक अतिरिक्त चरण के रूप में चलती है, npm install के बाद और पैकेजिंग से पहले। यह resolved डिपेंडेंसीज़ को स्कैन करती है और vulnerable डिपेंडेंसीज़ को उनके sealed संस्करणों में फिर से लिखती है, remote fix मोड का उपयोग करके (पॉलिसी Seal UI में केंद्रीय रूप से प्रबंधित होती है)।

विकल्प A — GitHub Actions

यह seal-community/cli-action का उपयोग करता है:

root@kitploit:~
- uses: seal-community/cli-action@latest
  with:
    mode: fix
    fix_mode: remote
    token: ${{ secrets.SEAL_TOKEN }}
    target: package-lock.json     # the lock file for this ecosystem

इसे Actions → “Seal Security Remediation” → Run workflow के माध्यम से चलाएँ। .github/workflows/seal-security.yml देखें।

विकल्प B — Jenkins (Groovy पाइपलाइन)

इंस्टॉल के बाद और पैकेजिंग से पहले एक अतिरिक्त stage। Jenkinsfile देखें:

root@kitploit:~
stage('Seal') {
  steps {
    sh '''
      curl -fsSL https://github.com/seal-community/cli/releases/download/latest/seal-linux-amd64-latest -o seal
      chmod +x seal
      ./seal fix --mode remote "$SEAL_MANIFEST"   # SEAL_MANIFEST=package-lock.json
    '''
  }
}

SEAL_TOKEN seal-token Jenkins क्रेडेंशियल से आता है; SEAL_PROJECT को अपने Seal Project ID पर सेट करें।


Seal क्या बदलता है

seal fix के बाद, vulnerable डिपेंडेंसीज़ Seal के registry से sealed बिल्ड्स पर resolve होती हैं — आपके package.json version ranges वही रहते हैं:

एक sealed संस्करण वही पैकेज है जिसमें सुरक्षा फिक्स backport किया गया है, इसलिए यह एक drop‑in प्रतिस्थापन है — कोई कोड परिवर्तन नहीं, कोई major‑version अपग्रेड नहीं।

फिक्स सत्यापित करें

Remediated ऐप पर exploit URL फिर से चलाएँ। इंजेक्शन अब निष्पादित नहीं होता: sealed ejs दुर्भावनापूर्ण outputFunctionName को अस्वीकार कर देता है और ऐप payload चलाने के बजाय “Invalid parameter” के साथ प्रतिक्रिया करता है। सर्वर चालू रहता है।


अपने प्रोजेक्ट में Seal कैसे जोड़ें

  1. अपनी पाइपलाइन में एक चरण जोड़ें, डिपेंडेंसीज़ इंस्टॉल होने के बाद और पैकेजिंग/बंडलिंग से पहले।
  2. seal fix को विशिष्ट manifest/lock फ़ाइल पर इंगित करें — npm के लिए package-lock.json। कई manifests वाली रिपॉजिटरी के लिए, प्रत्येक manifest के लिए एक seal fix चलाएँ।
  3. remote fix मोड का उपयोग करें ताकि आपकी सुरक्षा टीम remediation पॉलिसी को Seal UI में केंद्रीय रूप से प्रबंधित करे — रिपॉजिटरी में कुछ भी कमिट नहीं होता।
  4. Seal टोकन अपने CI सीक्रेट स्टोर (GitHub सीक्रेट / Jenkins क्रेडेंशियल) के माध्यम से प्रदान करें।

पूरा एकीकरण बस इतना है — एक stage, केवल आउटबाउंड, एप्लिकेशन कोड में कोई बदलाव नहीं।

टूल डाउनलोड करें
उपयोग
कहाँ जाता है
Seal टोकनSeal CLI को प्रमाणित करनाGitHub Actions सीक्रेट SEAL_TOKEN / Jenkins "Secret text" क्रेडेंशियल seal-token
ngrok टोकन (वैकल्पिक)चल रहे ऐप को परीक्षण के लिए ब्राउज़र पर एक्सपोज़ करनाGitHub Actions सीक्रेट NGROK_TOKEN
डिपेंडेंसीपहलेबाद में (sealed)
ejs2.7.42.7.4‑sp1
lodash4.17.54.17.5‑sp1
json50.5.10.5.1‑sp1
got6.7.16.7.1‑sp1