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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2017-5638-Attack-and-Defense — Apache Struts2 S2-045 (CVE-2017-5638) शोषण और बचाव का प्रदर्शन करने वाली Docker-आधारित सुरक्षा लैब, व्यावहारिक प्रशिक्षण के लिए WAF सुरक्षा के साथ कमजोर और पैच किए गए अनुप्रयोगों की विशेषता। | Kitploit
उपकरण/GitHubGitHub/acharaf06/cve-2017-5638-attack-and-defense
रक्षात्मक उपकरणभेद्यता विश्लेषणवेब एप्लिकेशन शोषणWAF बाईपासपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubacharaf06/cve-2017-5638-attack-and-defense

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

सभी देखें →

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

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

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

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

CVE-2017-5638-Attack-and-Defense

Apache Struts2 S2-045 (CVE-2017-5638) शोषण और बचाव का प्रदर्शन करने वाली Docker-आधारित सुरक्षा लैब, व्यावहारिक प्रशिक्षण के लिए WAF सुरक्षा के साथ कमजोर और पैच किए गए अनुप्रयोगों की विशेषता।

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

Apache Struts2 S2-045 रक्षा और शोषण प्रयोगशाला

एक Docker-आधारित सुरक्षा प्रयोगशाला जो Apache Struts2 S2-045 कमजोरी (CVE-2017-5638) के विरुद्ध शोषण और रक्षा दोनों का प्रदर्शन करती है। इस प्रयोगशाला में शामिल हैं:

  1. कमजोर एप्लिकेशन: Struts 2.3.31 (S2-045 के लिए कमजोर) शोषण प्रदर्शन के लिए
  2. रक्षा प्रयोगशाला: Struts 6.3.x (पैच किया गया) WAF सुरक्षा के साथ रक्षात्मक प्रशिक्षण के लिए

⚠️ सुरक्षा चेतावनी: इस प्रयोगशाला में काम करने वाले शोषण और कमजोर कोड शामिल हैं। केवल पृथक वातावरण में उपयोग करें। सार्वजनिक नेटवर्क पर खुलासा न करें।

आर्किटेक्चर अवलोकन

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                     होस्ट (केवल 127.0.0.1)                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────┐    ┌─────────────────┐              │
│  │   सिम्युलेटर   │───▶│  Nginx प्रॉक्सी │              │
│  │  (curl-आधारित)  │    │  + WAF नियम     │              │
│  └─────────────────┘    └────────┬────────┘              │
│                                  │                        │
│                          ┌───────┴────────┐              │
│                          │                │                │
│                  ┌───────▼──────┐ ┌───────▼──────┐        │
│                  │  रक्षा ऐप   │ │ कमजोर ऐप   │        │
│                  │ (Struts 6.3) │ │ (2.3.31)    │        │
│                  │ पोर्ट: 8080 │ │ पोर्ट: 8081 │        │
│                  └──────────────┘ └──────────────┘        │
│                                                             │
│  ┌─────────────────┐                                      │
│  │  शोषण कंटेनर   │───▶ कमजोर ऐप (8081)                  │
│  └─────────────────┘                                      │
│                                                             │
│  लॉग माउंटेड: ./logs/nginx/, ./logs/app/,                 │
│                   ./logs/app-vulnerable/                  │
└─────────────────────────────────────────────────────────────┘

घटक

आरंभ करना

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

  • Docker (संस्करण 20.10 या बाद का)
  • Docker Compose (संस्करण 2.0 या बाद का)
  • Python 3 (वैकल्पिक, शोषण स्क्रिप्ट सीधे चलाने के लिए)
  • curl (वैकल्पिक, मैन्युअल परीक्षण के लिए)

स्थापना

1. रिपॉजिटरी क्लोन करें

root@kitploit:~
# रिपॉजिटरी क्लोन करें
git clone https://github.com/ACharaf06/cybersec.git
cd cybersec

2. बिल्ड और चलाएं

root@kitploit:~
# सभी कंटेनर बनाएं (पहली बार में कई मिनट लग सकते हैं)
docker compose build

# रक्षा प्रयोगशाला शुरू करें (nginx + पैच किया गया ऐप)
docker compose up -d nginx app

# कमजोर ऐप शुरू करें (शोषण प्रदर्शन के लिए)
docker compose up -d app-vulnerable

# सेवाओं के चलने की पुष्टि करें
docker compose ps

# सेवाओं के स्वस्थ होने की प्रतीक्षा करें (लगभग 60 सेकंड)
sleep 60

# स्वास्थ्य समापन बिंदु जांचें
curl http://127.0.0.1:8080/struts-lab/health  # रक्षा प्रयोगशाला
curl http://127.0.0.1:8081/struts-lab/health   # कमजोर ऐप

अपेक्षित आउटपुट:

  • रक्षा प्रयोगशाला: JSON प्रतिक्रिया जिसमें "status":"healthy" और "strutsVersion":"6.3.0.2 (पैच किया गया - S2-045 के लिए कमजोर नहीं)"
  • कमजोर ऐप: JSON प्रतिक्रिया जिसमें "status":"healthy" और "strutsVersion":"2.3.31 (S2-045 के लिए कमजोर)"

2. रक्षा प्रयोगशाला परीक्षण

root@kitploit:~
# सिम्युलेटर कंटेनर चलाएं (रक्षा तंत्र का परीक्षण करता है)
docker-compose run --rm simulator

# या अलग-अलग परीक्षण मैन्युअल रूप से चलाएं:
# वैध अपलोड
curl -X POST -F "[email protected]" http://127.0.0.1:8080/struts-lab/upload

# संदिग्ध Content-Type (WAF द्वारा अवरुद्ध किया जाएगा)
curl -v -X POST \
  -H "Content-Type: multipart/form-data; boundary=----SUSPICIOUS" \
  http://127.0.0.1:8080/struts-lab/upload

3. शोषण प्रदर्शन

root@kitploit:~
# शोषण कंटेनर चलाएं (S2-045 शोषण प्रदर्शित करता है)
docker-compose --profile exploit run --rm exploit

# या Python शोषण स्क्रिप्ट सीधे उपयोग करें
python3 exploit/exploit.py http://127.0.0.1:8081/struts-lab 'whoami'

# या bash स्क्रिप्ट उपयोग करें
./exploit/demo_exploit.sh

⚠️ चेतावनी: कमजोर एप्लिकेशन जानबूझकर शोषण योग्य है। केवल पृथक वातावरण में चलाएं।

4. लॉग देखें

root@kitploit:~
# रक्षा प्रयोगशाला लॉग
tail -f logs/nginx/access.log      # Nginx एक्सेस लॉग
tail -f logs/nginx/error.log       # WAF ब्लॉक
tail -f logs/app/struts-lab.log    # रक्षा ऐप लॉग

# कमजोर ऐप लॉग
tail -f logs/app-vulnerable/struts-lab.log  # कमजोर ऐप लॉग

# सभी लॉग संयुक्त
docker-compose logs -f

क्या देखें

रक्षा प्रयोगशाला (पोर्ट 8080)

वैध अनुरोध:

  • Nginx एक्सेस लॉग: 200 प्रतिक्रिया
  • ऐप लॉग: INFO स्तर अपलोड प्रसंस्करण संदेश
  • अनुरोध सफलतापूर्वक पूरा होता है

संदिग्ध/विकृत अनुरोध:

  • Nginx एक्सेस लॉग: 403 Forbidden या 400 Bad Request
  • Nginx त्रुटि लॉग: WAF नियम ट्रिगर संदेश
  • ऐप लॉग: पार्सिंग त्रुटि दिखा सकता है यदि अनुरोध ऐप तक पहुंचता है
  • अनुरोध अवरुद्ध या स्वच्छ किया जाता है

कमजोर ऐप (पोर्ट 8081)

सफल शोषण:

  • HTTP 200 या 500 प्रतिक्रिया
  • कमांड आउटपुट प्रतिक्रिया बॉडी में दिखाई देता है
  • OGNL अभिव्यक्तियाँ मूल्यांकित होती हैं
  • सिस्टम कमांड निष्पादित होते हैं

लॉग उदाहरण:

Nginx संदिग्ध Content-Type को अवरुद्ध कर रहा है (रक्षा प्रयोगशाला):

root@kitploit:~
[WAF] संदिग्ध Content-Type पैटर्न अवरुद्ध - अनुरोध आईडी: abc123

ऐप अनुरोध मेटाडेटा लॉग कर रहा है (रक्षा प्रयोगशाला):

root@kitploit:~
[REQUEST] ID=abc123 Content-Type=multipart/form-data Method=POST URI=/upload
[UPLOAD] अनुरोध abc123 के लिए फ़ाइल अपलोड प्रसंस्करण

सफल शोषण (कमजोर ऐप):

root@kitploit:~
HTTP/1.1 200 OK
...
root
(कमांड आउटपुट प्रतिक्रिया बॉडी में दिखाई देता है)

तुलना: कमजोर बनाम रक्षा

सुरक्षा नोट्स

पृथक्करण

  • सभी सेवाएँ केवल 127.0.0.1 से बंधी हैं (कोई बाहरी पहुंच नहीं)
  • कंटेनर संचार के लिए आंतरिक Docker नेटवर्क
  • 0.0.0.0 पर कोई पोर्ट एक्सपोज़र नहीं
  • कमजोर ऐप को कभी भी सार्वजनिक नेटवर्क पर खुलासा नहीं किया जाना चाहिए

रक्षा परतें (रक्षा प्रयोगशाला)

  1. Nginx WAF नियम: ऐप तक पहुंचने से पहले संदिग्ध Content-Type पैटर्न को अवरुद्ध करें
  2. दर सीमा: प्रति IP 10 अनुरोध/सेकंड
  3. अनुरोध आकार सीमाएँ: अधिकतम 10MB बॉडी, अधिकतम 8KB हेडर
  4. पैच किया गया Struts: Struts 6.3.x का उपयोग करता है (S2-045 के लिए कमजोर नहीं)
  5. व्यापक लॉगिंग: सभी संदिग्ध गतिविधि लॉग की जाती है

S2-045 क्या था

S2-045 (CVE-2017-5638) Apache Struts2 संस्करण 2.3.5 - 2.3.31 और 2.5 - 2.5.10 में एक गंभीर कमजोरी थी जहाँ:

  • दुर्भावनापूर्ण Content-Type हेडर OGNL अभिव्यक्तियाँ इंजेक्ट कर सकते थे
  • Jakarta Multipart पार्सर ने इन अभिव्यक्तियों का मूल्यांकन किया
  • इससे रिमोट कोड निष्पादन (RCE) हुआ

कमजोर ऐप (पोर्ट 8081) इस कमजोरी को प्रदर्शित करता है। रक्षा प्रयोगशाला (पोर्ट 8080) दिखाती है कि इससे कैसे बचाव किया जाए।

फ़ाइल संरचना

root@kitploit:~
.
├── docker-compose.yml          # कंटेनर ऑर्केस्ट्रेशन
├── README.md                   # यह फ़ाइल
├── EXPLOITATION_GUIDE.md      # विस्तृत शोषण मार्गदर्शिका
├── TECHNICAL_DETAILS.md        # तकनीकी कार्यान्वयन विवरण
├── GLOSSARY.md                 # सुरक्षा शब्दों की शब्दावली
├── nginx/
│   ├── nginx.conf              # मुख्य nginx कॉन्फ़िगरेशन
│   └── waf-rules.conf          # S2-045 पैटर्न के लिए WAF नियम
├── app/                        # रक्षा प्रयोगशाला (पैच किया गया)
│   ├── Dockerfile              # Tomcat + Maven बिल्ड
│   └── struts-app/
│       ├── pom.xml             # Maven प्रोजेक्ट (Struts 6.3.x)
│       └── src/main/
│           ├── java/           # एक्शन क्लासेस
│           ├── resources/      # Struts + Log4j कॉन्फ़िग
│           └── webapp/         # JSP व्यू + web.xml
├── app-vulnerable/             # कमजोर ऐप (शोषण के लिए)
│   ├── Dockerfile              # Tomcat + Maven बिल्ड
│   └── struts-app/
│       ├── pom.xml             # Maven प्रोजेक्ट (Struts 2.3.31)
│       └── src/main/
│           ├── java/           # एक्शन क्लासेस
│           ├── resources/      # Struts + Log4j कॉन्फ़िग
│           └── webapp/         # JSP व्यू + web.xml
├── exploit/                    # शोषण उपकरण
│   ├── Dockerfile              # शोषण कंटेनर
│   ├── demo_exploit.sh         # Bash शोषण स्क्रिप्ट
│   └── exploit.py              # Python शोषण स्क्रिप्ट
├── simulator/
│   ├── Dockerfile              # Alpine + curl
│   └── simulate.sh             # परीक्षण स्क्रिप्ट
└── logs/                       # माउंटेड लॉग निर्देशिका
    ├── nginx/
    ├── app/                    # रक्षा प्रयोगशाला लॉग
    └── app-vulnerable/         # कमजोर ऐप लॉग

सफाई

root@kitploit:~
# सभी कंटेनर रोकें
docker compose down

# वॉल्यूम और लॉग हटाएं
docker compose down -v
rm -rf logs/

# पूर्ण सफाई (इमेज सहित)
docker compose down --rmi all -v

विकास सेटअप

परियोजना संरचना

परियोजना इस प्रकार आयोजित की गई है:

  • app/ - रक्षा प्रयोगशाला एप्लिकेशन (Struts 6.3.x, पैच किया गया)
  • app-vulnerable/ - कमजोर एप्लिकेशन (Struts 2.3.31)
  • exploit/ - शोषण उपकरण और स्क्रिप्ट
  • nginx/ - WAF नियमों के साथ Nginx रिवर्स प्रॉक्सी कॉन्फ़िगरेशन
  • simulator/ - हमला पैटर्न सिम्युलेटर
  • logs/ - एप्लिकेशन लॉग (gitignored)

व्यक्तिगत घटकों का निर्माण

root@kitploit:~
# केवल कमजोर ऐप को पुनर्निर्माण करें
docker compose build app-vulnerable
docker compose up -d app-vulnerable

# केवल रक्षा ऐप को पुनर्निर्माण करें
docker compose build app
docker compose up -d app

# शोषण कंटेनर को पुनर्निर्माण करें
docker compose build exploit

दस्तावेज़ीकरण

  • EXPLOITATION_GUIDE.md: S2-045 कमजोरी तंत्र और शोषण प्रक्रिया पर विस्तृत मार्गदर्शिका
  • TECHNICAL_DETAILS.md: प्रयोगशाला के तकनीकी कार्यान्वयन विवरण
  • GLOSSARY.md: इस प्रयोगशाला में उपयोग किए गए सुरक्षा शब्दों की शब्दावली

शैक्षिक संसाधन

  • Apache Struts सुरक्षा बुलेटिन
  • CVE-2017-5638 विवरण
  • OWASP इंजेक्शन रोकथाम
  • Metasploit S2-045 मॉड्यूल

⚠️ महत्वपूर्ण चेतावनी

  1. कमजोर एप्लिकेशन: पोर्ट 8081 पर ऐप जानबूझकर कमजोर है। सार्वजनिक नेटवर्क पर खुलासा न करें।
  2. काम करने वाले शोषण: इस प्रयोगशाला में काम करने वाला शोषण कोड शामिल है। केवल पृथक वातावरण में उपयोग करें।
  3. शैक्षिक उद्देश्य: यह प्रयोगशाला केवल सुरक्षा शिक्षा, अनुसंधान और अधिकृत प्रवेश परीक्षण के लिए है।
  4. कानूनी अनुपालन: केवल उन प्रणालियों पर उपयोग करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित प्राधिकरण है।

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

टूल डाउनलोड करें
कंटेनरउद्देश्यपोर्ट
nginxWAF नियमों, दर सीमा के साथ रिवर्स प्रॉक्सी127.0.0.1:8080
appTomcat 9 + Struts 6.3.x (पैच किया गया, रक्षा प्रयोगशाला)केवल आंतरिक
app-vulnerableTomcat 9 + Struts 2.3.31 (कमजोर, शोषण के लिए)127.0.0.1:8081
exploitशोषण प्रदर्शन कंटेनरN/A
simulatorपरीक्षण अनुरोध भेजता है (सामान्य + संदिग्ध पैटर्न)N/A
विशेषताकमजोर ऐप (पोर्ट 8081)रक्षा प्रयोगशाला (पोर्ट 8080)
Struts संस्करण2.3.31 (कमजोर)6.3.0.2 (पैच किया गया)
WAF सुरक्षा❌ कोई नहीं✅ Nginx WAF नियम
दर सीमा❌ कोई नहीं✅ 10 अनुरोध/सेकंड
अनुरोध आकार सीमाएँ❌ कोई नहीं✅ 10MB बॉडी, 8KB हेडर
सुरक्षा लॉगिंग⚠️ न्यूनतम✅ व्यापक
OGNL इंजेक्शन✅ शोषण योग्य❌ अवरुद्ध/पैच किया गया
RCE संभव✅ हाँ❌ नहीं
उपयोग का मामलाशोषण प्रदर्शनरक्षा प्रशिक्षण