क्या एक प्रारूप स्ट्रिंग Vulnerability है?
एक प्रारूप स्ट्रिंग भेद्यता क्या है समझने के लिए, आपको पहले एक प्रारूप स्ट्रिंग क्या है पता करने की जरूरत है. एक प्रारूप स्ट्रिंग कि यह कैसे करना चाहिए प्रारूप नंबरों को सी संकलक बताने की जब उन्हें प्रिंट एक ही रास्ता है.
प्रारूप तार सी में
सी प्रोग्रामिंग भाषा में वहाँ जो एक तर्क के रूप में एक प्रारूप स्ट्रिंग स्वीकार कार्यों का एक नंबर रहे हैं. ये काम करता है,, sprintf, snprintf, vfprintf, vprintf, vsprintf, vsnprintf, setproctitle, printf fprintf, syslog और अन्य शामिल हैं.
इनमें से सबसे आम printf है. Printf का उपयोग होता है:
printf प्रारूप [बहस ...]
printf [बहस ...] के प्रारूप प्रारूप द्वारा निर्दिष्ट में के मूल्य outputs.
Printf करने के लिए एक उदाहरण फोन है:
printf ( "इस क्षेत्र कोड है:% d \ n", 303);
समर्थित प्रारूप specifiers एक सी संकलक अगले करने से अलग. इस प्रारूप specifiers FreeBSD के अंतर्गत समर्थित हैं:
% d पर हस्ताक्षर किए दशमलव स्ट्रिंग को पूर्णांक कन्वर्ट. % u अहस्ताक्षरित दशमलव स्ट्रिंग को पूर्णांक कन्वर्ट. % i पर हस्ताक्षर किए दशमलव स्ट्रिंग को पूर्णांक कन्वर्ट; ने पूर्णांक या दशमलव में में हो सकता है एक अग्रणी 0 () के साथ या hexadecimal में एक अग्रणी 0x () के साथ अष्टाधारी. % ओ अहस्ताक्षरित अष्टाधारी स्ट्रिंग को पूर्णांक कन्वर्ट. % एक्स या% एक्स अहस्ताक्षरित hexadecimal तार करने के लिए, एक्स और के लिए `` 0123456789abcdef''अंक का उपयोग कर पूर्णांक कन्वर्ट `` एक्स''के लिए) 0123456789ABCDEF. % ग यह प्रतिनिधित्व करता है कि यूनिकोड चरित्र को पूर्णांक कन्वर्ट. % s नहीं रूपांतरण; बस तार डालें. % च के फार्म xx.yyy के हस्ताक्षर दशमलव स्ट्रिंग के लिए चल बिन्दु संख्या में कन्वर्ट जहां y है परिशुद्धता द्वारा (डिफ़ॉल्ट: निर्धारित किया जाता है की संख्या 6). यदि सटीक 0 रहा है तो कोई दशमलव बिंदु उत्पादन होता है. % ई या ई% वैज्ञानिक नोटेशन के लिए फार्म x.yyye में चल बिन्दु संख्या में कन्वर्ट +-zz, जहां y है परिशुद्धता द्वारा (डिफ़ॉल्ट: निर्धारित किया जाता है की संख्या 6). यदि सटीक 0 रहा है तो कोई दशमलव बिंदु उत्पादन होता है. यदि ई फार्म तो ई बजाय ई. की छपी है प्रयोग किया जाता है % छ या% जी यदि प्रतिपादक कम -4 या तुलना या परिशुद्धता के बराबर है, तो% ई या% ई. के लिए के रूप में चल बिन्दु संख्या में कन्वर्ट बड़ा है वरना% के रूप में बदलने के लिए f. और एक अनुगामी दशमलव बिंदु zeroes अनुगामी छोड़े गए हैं. %% नहीं रूपांतरण: बस% डालें.
प्रारूप specifiers के बारे में अधिक जानकारी के लिए, आदमी पृष्ठ करने के लिए अपने पास यूनिक्स प्रणाली पर "स्वरूप" के लिए देखें.
प्रारूप स्ट्रिंग Vulnerability हमलों
प्रारूप स्ट्रिंग भेद्यता हमलों में तीन श्रेणियों: सेवा का इनकार में, पढ़ने और लिखने गिर.
- सेवा हमलों का प्रारूप स्ट्रिंग भेद्यता इनकार के% के कई उदाहरण के उपयोग द्वारा लक्षण वर्णन कर रहे हैं जब तक इस कार्यक्रम एक अवैध पता से, जो दुर्घटना के लिए इस कार्यक्रम का कारण होगा डेटा को पढ़ने के लिए प्रयास stack के डेटा को पढ़ने के लिए प्रारूप specifier है.
- प्रारूप स्ट्रिंग भेद्यता पढ़ने एक्स प्रारूप specifier है कि हम आम तौर पर सामान्य रूप से करने के लिए पहुँच नहीं है स्मृति के अनुभागों को मुद्रित करने के लिए% का उपयोग हमलों.
- प्रारूप स्ट्रिंग भेद्यता हमलों ने% d,% U या% एक्स प्रारूप specifiers के निर्देश सूचक है और उपयोगकर्ता के बल निष्पादन अधिलेखित करने के कचकड़े कोड आपूर्ति का उपयोग लेखन.
प्रारूप स्ट्रिंग पर Vulnerabilities सूचना के अतिरिक्त स्रोत
प्रारूप स्ट्रिंग vulnerabilities शोषण के बारे में अधिक जानकारी के लिए, शोषण प्रारूप स्ट्रिंग Vulnerabilities करने के लिए नवछात्र द्वारा, और प्रारूप स्ट्रिंग हमलों टिम Newsham करके देखें.
जानें कि कैसे Amazon.com से सुरक्षित प्रोग्रामिंग पर इन उत्कृष्ट पुस्तकों के साथ अपने स्रोत कोड में प्रारूप स्ट्रिंग vulnerabilities को रोकने के लिए
|
जोखिम प्रबंधन Dummies के लिए
नवीनतम ब्लॉग पोस्ट
- SourceForge बनाम Freshmeat


