Hash Length Extension Attack

Reading time: 3 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Summary of the attack

कल्पना कीजिए कि एक सर्वर कुछ डेटा को साइन कर रहा है, जिसमें कुछ ज्ञात स्पष्ट पाठ डेटा के साथ एक गुप्त जोड़ा जा रहा है और फिर उस डेटा का हैश बनाया जा रहा है। यदि आप जानते हैं:

  • गुप्त की लंबाई (इसे दिए गए लंबाई रेंज से भी ब्रूटफोर्स किया जा सकता है)
  • स्पष्ट पाठ डेटा
  • एल्गोरिदम (और यह इस हमले के प्रति संवेदनशील है)
  • पैडिंग ज्ञात है
  • आमतौर पर एक डिफ़ॉल्ट का उपयोग किया जाता है, इसलिए यदि अन्य 3 आवश्यकताएँ पूरी होती हैं, तो यह भी है
  • पैडिंग गुप्त + डेटा की लंबाई के आधार पर भिन्न होती है, यही कारण है कि गुप्त की लंबाई की आवश्यकता है

तो, एक हमलावर के लिए डेटा को जोड़ना और पिछले डेटा + जोड़े गए डेटा के लिए एक वैध हस्ताक्षर जनरेट करना संभव है।

How?

बुनियादी रूप से संवेदनशील एल्गोरिदम पहले डेटा के एक ब्लॉक का हैश बनाकर हैश उत्पन्न करते हैं, और फिर, पिछले बनाए गए हैश (राज्य) से, वे अगले डेटा के ब्लॉक को जोड़ते हैं और हैश करते हैं।

फिर, कल्पना कीजिए कि गुप्त "secret" है और डेटा "data" है, "secretdata" का MD5 6036708eba0d11f6ef52ad44e8b74d5b है।
यदि एक हमलावर स्ट्रिंग "append" को जोड़ना चाहता है, तो वह कर सकता है:

  • 64 "A"s का MD5 जनरेट करें
  • पहले से प्रारंभ किए गए हैश की स्थिति को 6036708eba0d11f6ef52ad44e8b74d5b में बदलें
  • स्ट्रिंग "append" जोड़ें
  • हैश को समाप्त करें और परिणामी हैश "secret" + "data" + "padding" + "append" के लिए एक वैध होगा

Tool

GitHub - iagox86/hash_extender

References

आप इस हमले को अच्छी तरह से समझा सकते हैं https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें