Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cakephp-attachment-crlf — CakePHP 5.4.2 - उच्च - रिमोट - CRLF - attachment Content-Type और Content-ID अवशेष | Kitploit
उपकरण/GitHubGitHub/abraxas/cakephp-attachment-crlf
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणसुरक्षा वर्चुअलाइजेशनवेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubabraxas/cakephp-attachment-crlf

cakephp-attachment-crlf

CakePHP 5.4.2 - उच्च - रिमोट - CRLF - attachment Content-Type और Content-ID अवशेष

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - cakephp-attachment-crlf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cakephp-attachment-crlf

cakephp-attachment-crlf

वर्ग: MIME-भाग हेडर इंजेक्शन पहुँच: रिमोट

CakePHP 5.4.2 (887b641) - Cake Software Foundation

5.4.2 पहले से ही multipart name= / filename= से ", \r, और \n को हटा देता है (FormDataPart::_headerParameterToString)। यही नियंत्रण है। Content-Type और Content-ID को कच्चे संयोजन के रूप में छोड़ दिया गया था। Message::setAttachments एक UploadedFile क्लाइंट मीडिया प्रकार को उस प्रकार फ़ील्ड में बिना किसी अतिरिक्त फ़िल्टर के कॉपी करता है।

एक ऐप जो उपयोगकर्ता अपलोड संलग्न करता है, या जो उपयोगकर्ता contentId पास करता है, उन बाइट्स को MIME भाग पर रखता है। getBodyString() फिर उस भाग के नीचे एक दूसरी हेडर पंक्ति दिखाता है।

IDअभी तक कोई CVE नहीं
वर्गMIME-भाग हेडर इंजेक्शन
पहुँचरिमोट (ऐप जो उपयोगकर्ता अपलोड या उपयोगकर्ता contentId संलग्न करता है)
CWECWE-93
CVSSमध्यम: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
उत्पादCakePHP
प्रभावित5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
प्रमाणीकरणऐप जो उपयोगकर्ता अपलोड (UploadedFile क्लाइंट MIME) या उपयोगकर्ता contentId संलग्न करता है
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1

हमलावर क्या कर सकता है

कोई भी जो ऐप द्वारा Message::setAttachments / addAttachment में पास किए जाने वाले अटैचमेंट मेटाडेटा को प्रभावित कर सकता है, वह MIME-भाग हेडर इंजेक्ट कर सकता है।

विशेषाधिकारविधि / सिंकप्रकारलैब-प्रमाणित या अनुमानित
अतिरिक्त Content-Type हेडर पंक्तिsetAttachments के साथ 'mimetype' => "text/plain\\r\\nX-Injected: …"MIME भाग हेडर की अखंडतालैब-प्रमाणित। गवाह पंक्ति मौजूद
अतिरिक्त Content-ID हेडर पंक्ति'contentId' => "cid@…>\\r\\nX-Injected: …" (इनलाइन भाग)MIME भाग हेडर की अखंडतालैब-प्रमाणित। गवाह पंक्ति मौजूद
अपलोड MIME के माध्यम से वही इंजेक्शनUploadedFile::getClientMediaType() को mimetype पर कॉपी किया गयाMIME भाग हेडर की अखंडतालैब-प्रमाणित। गवाह पंक्ति मौजूद
filename= CRLFCR/LF के साथ अटैचमेंट नामबंदलैब-प्रमाणित बंद। 5.4.2 स्ट्रिप कायम है
इस सिंक के माध्यम से एनवेलप RCPT / Bccबॉडी में MIME भाग हेडरबंदयह SmtpTransport का pair-only स्ट्रिप है, एक सहोदर
SMTP भेजेंलैब केवल getBodyString() कॉल करता हैबंदकोई ट्रांसपोर्ट नहीं, कोई शेल नहीं

उसी संयोजन से अनुमानित, प्रदर्शित नहीं: एक तैयार किया गया प्रकार या contentId जिसमें multipart बाउंड्री शामिल हो, प्राप्त करने वाले MUA में संदेश को अतिरिक्त भागों में विभाजित कर सकता है। मैंने मेल नहीं भेजा।

उसी पिन के अवशेष: window SQLi, collate SQLi, cache unserialize।

मैंने इसे कैसे खोजा

मैंने cakephp/cakephp 5.4.2 को पिन किया, उस bakery नोट के बाद कि multipart Content-Disposition filename= इंजेक्शन ठीक कर दिया गया था। _headerParameterToString सैनिटाइज़र है:

$transliterated = Text::transliterate(str_replace(['"', "\r", "\n"], '', $value));

__toString() अभी भी करता है:

if ($this->type) {
    $out .= 'Content-Type: ' . $this->type . "\r\n";
}
if ($this->contentId) {
    $out .= 'Content-ID: <' . $this->contentId . ">\r\n";
}

Message::setAttachments अपलोड क्लाइंट प्रकार को बिना स्ट्रिप के कॉपी करता है। attachFiles / attachInlineFiles फिर $part->type($fileInfo['mimetype']) और $part->contentId($fileInfo['contentId']) कॉल करते हैं।

पहले से दर्ज गलत मोड़: एनवेलप RCPT को इस अवशेष के रूप में मानना (अतिरिक्त पंक्ति बॉडी में है); यह दावा करना कि filename= अभी भी इंजेक्ट करता है (यह नहीं करता); SMTP भेजना; एक रिवर्स शेल। नाटक।

लैब

python3 cakephp-attachment-crlf-Abraxas-Labs.py

या

cd lab
./run.sh

लक्ष्य केवल http://127.0.0.1:19460। PHP 8.3, CakePHP टैग 5.4.2 बिल्ड पर क्लोन किया गया। lab_server.php Message::setAttachments को उजागर करता है। चार केस: filename नियंत्रण, mimetype, contentId, UploadedFile मीडिया प्रकार।

SUCCESS cakephp-attachment-crlf how=live pin=5.4.2 sha=887b641de9f7aba06071f98f17edcbc573cbcf63 mimetype=yes contentId=yes upload=yes filename-stripped=yes CAKEPHP-ATTACHMENT-CRLF-WITNESS

समाधान

type, contentId, और transferEncoding को _headerParameterToString के समान " / \r / \n स्ट्रिप से गुज़ारें। यदि स्ट्रिप के बाद भी मान में लाइन ब्रेक हो तो उसे अस्वीकार करें। मेलर परीक्षणों में UploadedFile क्लाइंट MIME और स्पष्ट mimetype / contentId को कवर करें, केवल filename= को नहीं।

संदर्भ

  • github.com/cakephp/cakephp टैग 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • FormDataPart.php · Message.php
  • निकट पैच किया गया: 5.4.2 bakery filename= स्ट्रिप
  • वही पिन: cakephp-window-sqli · cakephp-collate-sqli · cakephp-cache-unserialize
  • CWE-93

लाइसेंस

GNU Affero GPL v3.0। देखें LICENSE। केवल लूपबैक लैब। कोई वारंटी नहीं।

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