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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Python-Example — Seal Security उदाहरण — कमजोर pip ऐप (PyYAML CVE-2020-14343) को सील किए गए संस्करणों में ठीक किया गया; GitHub Actions + Jenkins एकीकरण | Kitploit
उपकरण/GitHubGitHub/seal-sec-demo-2/python-example
भेद्यता विश्लेषणकोड विश्लेषणDevSecOpsआपूर्ति श्रृंखला सुरक्षालर्निंग और शिक्षा
GitHubseal-sec-demo-2/python-example

Python-Example

Seal Security उदाहरण — कमजोर pip ऐप (PyYAML CVE-2020-14343) को सील किए गए संस्करणों में ठीक किया गया; GitHub Actions + Jenkins एकीकरण

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

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

सभी देखें →

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

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

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

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

Seal Security — Python (pip) उदाहरण

एक न्यूनतम, जानबूझकर कमजोर Flask एप्लिकेशन जिसका उपयोग यह प्रदर्शित करने के लिए किया जाता है कि कैसे Seal Security एक ज्ञात CVE को ठीक करता है, एक कमजोर निर्भरता को सील (बैकपोर्टेड, ड्रॉप‑इन) संस्करण से बदलकर — आपकी घोषित आवश्यकताओं या आपके कोड में कोई बदलाव किए बिना।

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


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

इकोसिस्टमPython / pip
कमजोर पैकेजPyYAML==5.1
CVECVE‑2020‑14343 — yaml.load / FullLoader डिसीरियलाइज़ेशन → आर्बिट्रेरी कोड एक्ज़ीक्यूशन
सील (फिक्स्ड) संस्करणSeal के PyPI रजिस्ट्री से pyyaml 5.1+sp1
एकीकरणएक बिल्ड स्टेप के रूप में Seal CLI — GitHub Actions और Jenkins दोनों के लिए दिखाया गया

एक्सप्लॉइट कैसे काम करता है

वेलकम पेज एक name लेता है और इसे PyYAML के डिफ़ॉल्ट लोडर के माध्यम से पार्स करता है:

root@kitploit:~
parsed = yaml.load(name)   # PyYAML 5.1 → असुरक्षित FullLoader (CVE-2020-14343)

PyYAML 5.1 पर, yaml.load() बिना स्पष्ट SafeLoader के FullLoader का उपयोग करता है, जो अविश्वसनीय इनपुट से मनमाना Python ऑब्जेक्ट बना सकता है। एक हमलावर एक YAML पेलोड सबमिट करता है जो सर्वर पर मनमाना Python का मूल्यांकन करता है।

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

root@kitploit:~
/?name=alice          →  Welcome, alice!

एक्सप्लॉइट अनुरोध — इस YAML को name के रूप में पास करें (वर्कफ़्लो लॉग में पहले से URL‑एन्कोडेड):

root@kitploit:~
!!python/object/apply:tuple [!!python/object/apply:map [!!python/name:eval , ["__import__('subprocess').check_output(['id']).decode()"]]]

कमजोर PyYAML पेलोड को डिसीरियलाइज़ और चलाता है, ऐप “You've been pwned” पेज दिखाता है, और सर्वर को फिर मार दिया जाता है (कुछ सेकंड बाद, ताकि पेज पहले डिलीवर हो)। पुनः लोड करें और ऐप गायब है — ngrok पर आप “endpoint offline” पेज देखेंगे।


रिपॉज़िटरी लेआउट

root@kitploit:~
.
├── app.py                         # कमजोर Flask ऐप
├── requirements.txt               # PyYAML==5.1 घोषित करता है
├── Jenkinsfile                    # Seal स्टेज के साथ उदाहरण Jenkins (Groovy) पाइपलाइन
└── .github/workflows/
    ├── build-and-run.yml          # ब्राउज़र परीक्षण के लिए ऐप चलाएं + एक्सपोज़ करें
    └── seal-security.yml          # Seal सुधार चलाएं, फिर ऐप शुरू करें

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

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

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

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

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


इसे स्थानीय रूप से चलाएं

root@kitploit:~
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python app.py               # → http://localhost:5000

http://localhost:5000/?name=alice खोलें (काम करता है), फिर ऊपर दिए गए एक्सप्लॉइट पेलोड को name के रूप में सबमिट करें — ऐप "You've been pwned" दिखाता है और सर्वर कुछ सेकंड बाद मारा जाता है।


Seal के साथ सुधार

Seal CLI एक अतिरिक्त चरण के रूप में चलता है, pip install के बाद और पैकेजिंग से पहले। यह हल की गई निर्भरताओं को स्कैन करता है और कमजोर निर्भरताओं को उनके सील संस्करणों में फिर से लिखता है, रिमोट फिक्स मोड का उपयोग करते हुए (नीति 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: requirements.txt      # इस इकोसिस्टम के लिए मेनिफ़ेस्ट

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

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

एक एकल जोड़ा गया चरण, इंस्टॉल के बाद और पैकेजिंग से पहले। देखें 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=requirements.txt
    '''
  }
}

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


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

seal fix के बाद, कमजोर निर्भरता Seal के PyPI रजिस्ट्री से एक सील बिल्ड पर हल होती है — वही पैकेज, सुरक्षा फिक्स बैकपोर्टेड:

निर्भरतापहलेबाद (सील)
PyYAML5.15.1+sp1

एक सील संस्करण सुरक्षा फिक्स के साथ बैकपोर्टेड वही पैकेज है — एक ड्रॉप‑इन प्रतिस्थापन, कोई कोड बदलाव नहीं और कोई मेजर‑वर्जन अपग्रेड नहीं।

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

सुधारित ऐप के विरुद्ध एक्सप्लॉइट को पुनः चलाएं। सील PyYAML दुर्भावनापूर्ण ऑब्जेक्ट बनाने से इनकार करता है, इसलिए yaml.load पेलोड को निष्पादित करने के बजाय उठाता है, और ऐप “Invalid input — payload rejected.” के साथ प्रतिक्रिया करता है। सामान्य नाम अभी भी काम करते हैं।


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

  1. अपनी पाइपलाइन में एक चरण जोड़ें, निर्भरताओं को स्थापित करने के बाद और पैकेजिंग से पहले।
  2. seal fix को विशिष्ट मेनिफ़ेस्ट पर इंगित करें — pip के लिए requirements.txt। एकाधिक मेनिफ़ेस्ट/लॉक फ़ाइलों वाले रिपॉज़िटरी के लिए, प्रति मेनिफ़ेस्ट एक seal fix चलाएं।
  3. रिमोट फिक्स मोड का उपयोग करें ताकि आपकी सुरक्षा टीम Seal UI में केंद्रीय रूप से सुधार नीति का प्रबंधन करे — रिपॉज़िटरी में कुछ भी कमिट नहीं किया गया है।
  4. अपने CI सीक्रेट स्टोर (GitHub सीक्रेट / Jenkins क्रेडेंशियल) के माध्यम से Seal टोकन प्रदान करें।

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

टूल डाउनलोड करें
किसके लिए उपयोग किया जाता है
कहाँ जाता है
Seal टोकनSeal CLI को प्रमाणित करनाGitHub Actions सीक्रेट SEAL_TOKEN / Jenkins "Secret text" क्रेडेंशियल seal-token
ngrok टोकन (वैकल्पिक)चल रहे ऐप को ब्राउज़र परीक्षण के लिए एक्सपोज़ करनाGitHub Actions सीक्रेट NGROK_TOKEN