سؤال

جئت عبر هذا البرنامج النصي بايثون الذي يختبر الخادم بحثًا عن ثغرة HeartBleed:

هل يمكن لأي شخص أن يشرح محتوى "الترحيب"، وما الذي يتم إرساله وكيف تم إنشاء هذا المحتوى؟

أنا لا أحاول استخدام هذا البرنامج النصي بشكل ضار.لقد طُلب مني اختبار خادم Tomcat 7.0.2 بحثًا عن الثغرة الأمنية:لقد تحققت من أن tcnative-1.dll يستخدم openssl 1.0.1d، لكن عددًا قليلًا من أدوات الاختبار المستقلة التي حاولت اختبار الخادم أبلغت أنها غير معرضة للخطر.

هل كانت مفيدة؟

المحلول

hello و hb تحديد سلاسل بايت بطريقة أكثر قابلية للقراءة.

ال h2bin(x) الوظيفة تقوم بكل العمل:

def h2bin(x):
    return x.replace(' ', '').replace('\n', '').decode('hex')

لذلك تمت إزالة جميع المسافات البيضاء في سلسلة الأرقام السداسية، ثم يتم فك تشفيرها من سداسي عشري إلى بايت:

>>> '16 03 02 00 dc'.replace(' ', '')
'16030200dc'
>>> '16 03 02 00 '.replace(' ', '').decode('hex')
'\x16\x03\x02\x00\xdc'

إنها مجرد طريقة مدمجة لتحديد سلسلة من البايتات باستخدام التدوين السداسي العشري والمسافات البيضاء الإضافية.

البيانات السداسية نفسها هي مجرد بيانات عادية رسالة بروتوكول نبضات القلب, ، بالبايت الخام.ال hello تحتوي السلسلة على أ رسالة تسجيل TLS 1.1, ، تم تحديدها بواسطة البايت الأول (16 عرافة، 22 عشري) كسجل للمصافحة، وإرسال أ client_hello (البايت السادس هو 01).هذا مجرد إعداد جلسة TLS، لإخبار الخادم بنوع الأصفار التي يدعمها العميل.لا يهم حقًا ما يتضمنه هذا، بخلاف أنه يخبر الخادم بأن العميل يدعم ملحق Heartbeat (أ 00 0f زوج البايت في نهاية الرسالة).

انها hb رسالة هذا أمر مثير للاهتمام حقًا:

hb = h2bin(''' 
18 03 02 00 03
01 40 00
''')

18 هو سجل نوع محتوى نبضات القلب، 03 02 يحدد إصدار بروتوكول TLS 1.1.ال 00 03 يشير إلى حجم حمولة الرسالة؛3 بايت، أو كل السطر الثاني.

تتكون البايتات الثلاثة للرسالة نفسها من نوع نبضات القلب (01, أو "طلب")، وطول الرسالة (40 00, ، 16384 بايت)، متبوعًا بـ لا توجد رسالة فعلية.يؤدي هذا إلى قيام خادم SSL معطل بإرسال استجابة نبضية تحتوي على 16 كيلو بايت من الذاكرة؛يتم تكرار رسالة الطلب ذات الطول 0 غير الموجودة بالإضافة إلى الذاكرة لتعويض طول الطلب.

نصائح أخرى

تفسر هذه الصفحة الكثير عن ذلك.

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top