
सुरक्षा और गोपनीयता CS 600.443 के लिए अंतिम परियोजना
सुरक्षा और गोपनीयता CS 600.443 के लिए अंतिम परियोजना | पतन 2018
मैंने मूल रूप से एक पैच बनाने के लिए diff का उपयोग करने की कोशिश की। मैंने इसे उस तरह से पैच किया जैसा मुझे लगा कि यह होना चाहिए, असली पैच को देखने से पहले। encrypt.patch वह मूल पैच है जो मैंने diff के साथ बनाया था। हालांकि, जब हमने इस पैच को freeBSD पर लागू करने की कोशिश की, तो इसने इसे स्वीकार नहीं किया।
इसके बजाय, मुझे असली पैच लाना पड़ा। फिर मैंने पैच को बदल दिया ताकि सुधार को उस तरह से लागू किया जा सके जैसा मूल रूप से मुझे लगा कि होना चाहिए। यह काम करता है क्योंकि यह पूरे पथ को पैच में डालता है।
पैच में, मैं बस MAXLENGTH से तुलना करके लंबाई की जांच करता हूं। यदि यह उससे बड़ा है, तो इसे 0 पर सेट करें। इस तरह, यह len = 0 के मामले में आ जाता है, जो त्रुटि उत्पन्न करता है। यह इसे ठीक करता है!
यहां freeBSD में पैच लागू करने के तरीके का स्पष्टीकरण दिया गया है। https://www.freebsd.org/security/advisories/FreeBSD-SA-11:08.telnetd.asc बस असली पैच लाने के बजाय इस पैच का उपयोग करें। यह काम करेगा, और आप अब बफर ओवरफ्लो का शोषण नहीं कर पाएंगे।