هدف الكراك: كسر كلمة مرور تسجيل الدخول المشفرة لطروادة asp، كسر كلمة المرور لطروادة asp. نظرًا لعدم وجود وصف لإصدار حصان طروادة، لا أعرف الاسم المحدد له.
هناك طريقتان للتكسير: استبدال النص المشفر بكلمة المرور المشفرة واستخدام النص المشفر وخوارزمية التشفير لفك تشفير كلمة المرور. السابق ليس في الحقيقة صدعًا على الإطلاق.
الغرض من الكسر: للمتعة فقط.
إذا لم أتمكن من الحصول على كود مصدر ASP، فلن يكون لدي أي فرصة لكسر كلمة المرور. قال صديق من الصين إنه تمكن من الوصول إلى صفحة ويب، لكنه لم يتمكن من تعديل الصفحة الرئيسية. ووجد أن هناك حصان طروادة لـ ASP، ولكن كلمة المرور كانت مشفرة. ثم هناك هذه الرسوم المتحركة. حسنًا، هناك الكثير من الهراء، لذا كن مستعدًا، سيكون هذا الشرح طويلًا جدًا.
رمز المفتاح للتحقق من كلمة مرور تسجيل الدخول لـ asp Trojan هو كما يلي:
إذا Epass(trim(request.form("password")))="q_ux624q|p" ثم
Response.cookies("password")="8811748"
...
<%
حدد النهاية
وظيفة Epass (تمرير)
temppass=StrReverse(left(pass&"zxcvbnm,./",10))
تمبلن = لين (تمرير)
مم كلمة المرور = ""
ل ي = 1 إلى 10
mmpassword=mmpassword+chr(asc(mid(temppass,j,1))-temple+int(j*1.1))
التالي
Epass=replace(mmpassword،"'"،"B")
وظيفة النهاية
%>
من الواضح أنه يتم استخدام وظيفة Epass لتشفير كلمة المرور المدخلة، ثم تتم مقارنة النص المشفر الذي تم الحصول عليه مع النص المشفر الأصلي. إذا كان لديك القليل من أساسيات البرمجة، وخاصة VB، فستكون خوارزمية التشفير في Epass واضحة في لمحة. إذا لم يكن الأمر كذلك، فلا يهم، أعتقد أنك ستفهمه بعد وقت قصير من شرحي. في الدالة، المتغير الذي يحمل كلمة المرور هو pass. pass&"zxcvbnm,./" قم بتوصيل المحتوى بالمرور باستخدام zxcvbnm,./ للحصول على سلسلة جديدة. left(pass&"zxcvbnm,./",10) يأخذ أول 10 أرقام. تقوم الدالة StrReverse بعكس ترتيب السلسلة المكونة من 10 أرقام الناتجة. len(pass) يحصل على طول كلمة المرور. أدناه حلقة. خذ رمز Ascii لكل بت في السلسلة التي تم الحصول عليها - طول كلمة المرور + التقريب (موضع الحرف * 1.1)، ثم قم بتحويل القيمة التي تم الحصول عليها إلى أحرف وأعد الاتصال. أخيرًا، استبدل جميع الأحرف ' في السلسلة التي تم الحصول عليها بـ B، بحيث يتم إنشاء النص المشفر. إذا استخرجنا خوارزمية التشفير واستبدلنا النص المشفر الأصلي بنصنا المشفر، فستصبح كلمة المرور المقابلة هي كلمة المرور الخاصة بك أيضًا. ولكن كما قلت، هذا ليس صدعًا حقًا.
وإذا دخلنا الحب فإن عملية التشفير تكون كالتالي:
حب
lovezxcvbnm,./ 'اتصال
lovezxcvbn "خذ المراكز العشرة الأولى".
nbvcxzevol "تم عكس الأمر."
ن
110(أسكي)-4(أرقام)+int(1(الموضع)*1.1)=107
رمز ASCII 107 هو k، وهكذا يكون النص المشفر النهائي:
k`ucy|hzts
يمكننا خصم كلمة المرور من خلال النص المشفر وخوارزمية التشفير. ابدأ بالخطوة الأخيرة من الخوارزمية وواصل طريقك للأعلى. الخطوة الأخيرة هي استبدال الكل بـ "ب". هل من الضروري استبدال "ب" بـ "الإجابة هي لا". وطالما تمكنا من الحصول على النص المشفر النهائي، فمن الممكن أن تكون كلمة المرور مختلفة. إذا كان هناك 10 كلمات مرور B، فإن عدد كلمات المرور الأصلية هو 2 أس 10. وعلى الرغم من وجود كلمة مرور أصلية واحدة فقط، إلا أن جميع كلمات المرور البالغ عددها 1024 صحيحة. إذا كنت ترغب في حلها بشكل مثالي، يمكنك محاولة كتابة جميع المجموعات بنفسك.
ومن ثم يمكن تجاهل هذه الخطوة.
الخوارزمية المذكورة أعلاه واضحة جدًا،
chr(asc(mid(temppass,j,1))-templen+int(j*1.1))
نحتاج فقط إلى استبدال + و-.
chr(asc(mid(temppass,j,1))+templen-int(j*1.1))
ولكن هناك مشكلة أخرى، نحن لا نعرف طول كلمة المرور مقدمًا. كلمة المرور تتراوح بين 1-10 أرقام طويلة جدًا.
بعد ذلك، يمكننا استخدام حلقة من 1 إلى 10 للعثور على جميع كلمات المرور الممكنة، ثم استخدام الدالة StrReverse لعكس الترتيب.
فكيف نحدد كلمة المرور التي حصلنا عليها أخيرًا؟ يمكنك استخدام pass&"zxcvbnm,./" لمعرفة ما إذا كانت هناك الأرقام الأولى لـ zxvbnm,./ في نهاية كلمة المرور.
حسنًا، هذه هي كلمة المرور الحقيقية. ثم إذا كانت كلمة المرور مكونة من 10 أرقام، فستكون صحيحة دائمًا، لأنه لن يكون هناك اتصال لاحقًا. لذلك قد نحصل على إجابتين.
فيما يلي وظيفة فك التشفير التي كتبتها:
كود الوظيفة(الرمز)
للمعبد 1 = 1 إلى 10
كود مم = ""
ل ي = 1 إلى 10
mmcode=mmcode+chr(asc(mid(code,j,1))+templen1-int(j*1.1))
التالي
Ccode=strReverse(mmcode)
Response.write "كلمة المرور"&templen1&":&Ccode&"<br>"
إذا mid(Ccode,templen1+1,10-templen1)=left("zxcvbnm,./",10-templen1) و Templen1<>10 إذن
النتيجة = اليسار (كود، تيمبلين1)
التالي
استجابة.اكتب "آخر كلمة مرور:"&النتيجة
الوظيفة النهائية
جاهزة. قد لا يتم إتقان الخوارزمية بشكل كامل في مثل هذه الفترة القصيرة من الزمن. ثم سأرفق الوثائق وكود مصدر ASP المشفر والمفكك في الحزمة المضغوطة دراستها بعناية. وبالمثل، كلمة المرور 10 صحيحة دائمًا. ثم سنأخذ النص المشفر الأصلي بتنسيق ASP ونرى ماذا ستكون النتيجة. حسنًا، يمكنك تسجيل الدخول باستخدام كلمتي المرور. للاختبار، افترضت وجود IIS محليًا. إذا تعذر إعداد خادم الويب محليًا، يمكنك الاتصال بي وكتابته بلغات أخرى.