المؤلف: czy <[email protected]>
المصدر: http://www.nsfocus.net
التاريخ: 2003-09-03
(لاحظ أنه نظرًا لأن المنتدى سيعالج بعض الشخصيات في المقالة ، فمن الأفضل
http://www.chinansl.com/czy/xmlhttp.txt اقرأ المقال
http://www.chinansl.com/czy/aspsky5.htm رمز الاختبار)
أعتقد أنك على دراية بالفعل بهجمات البرمجة النصية عبر الموقع ، ولكن هناك دائمًا هجمات عندما تحصل على ملف تعريف الارتباط.
سؤال: استخدم دائمًا window.Open لإطفاء نموذج ثم إرسال ملف تعريف الارتباط ، لذلك هذا سر
إنه خصم كبير. اعتدت أن أفكر في طريقة insertadjacenthtml لحقن عبارة HTML في صفحة ويب
بالكاد يمكن استخدام هذه الطريقة لإرسال ملف تعريف الارتباط بدون نافذة IE ، ولكن في الاستخدام الفعلي ، قد تحدث أخطاء.
ألا توجد طريقة أفضل؟ في الماضي ، عند دراسة الترقية التلقائية لفيروسات VBS ، استخدمت microsoft.xmlhttp.
التحكم (هذا التحكم هو شيء يأتي مع الافتراضي على Win98/2K ، وهو عنصر التحكم IE آمن!) ، من خلاله نحن
يمكنك إرسال طلبات HTTP إلى موقع الويب على صفحة الويب ، إما النشر أو الحصول عليها.
حسنًا ، لقد جاءت الفكرة إلى هنا. دعنا نأخذ aspsky5.00320 كمثال.
نحن نعلم أنه يمكن كتابة <imgsrc = "xxxxxx"> في SRC مع vbscript :. . على سبيل المثال
<imgsrc = "vbscript: a = (msgbox (الآن))"> ، لكن يمكننا فقط تنفيذ عبارة واحدة ، على سبيل المثال
<imgsrc = "vbscript: a = (msgbox (الآن)): b = (msgbox (الآن))"> سيكون هذا خطأ!
ماذا علي أن أفعل؟ في VBS ، يمكننا استخدام عبارات تنفيذ ، في JS يمكننا استخدام Eval!
على سبيل المثال: <imgsrc = "vbscript: execute (" a = (msgbox (الآن)): b = (msgbox ("czy")) ")">
أو <imgsrc = "javaScript: eval ('Alert (/' nsfocus/') ؛ Alert (/' czy/')')">
ليس بالدوار حتى الآن ، أليس كذلك؟ كما أعلاه ، قد تلاحظ أنه عند استخدام بيان تنفيذ VBS ، يجب تغيير عروض الأسعار المزدوجة إلى "هذا بسبب:
في VBS ، يجب أن تكون عروض أسعار مفردة محاطة بسلاسل ، ويمثل اثنين من الاقتباس الفردي واحد وآخر اقتباس ، وداخل اقتباسات مزدوجة!
لذلك في بيان التنفيذ ، لا يمكننا استخدام عروض أسعار واحدة ، ولكن نستخدمها مباشرة "، عندما يكون HTML مطابقة للاقتباس
سوف يتطابق مع الاقتباسات بعد SRC = "، لذلك يمكننا فقط استخدام" بدلاً من ذلك.
تم حل مشكلة علامة الاقتباس. في التطبيقات الفعلية ، ستقوم Aspsky أيضًا بمعالجة رمزنا:
1: إذا وجدت سلسلة نصية ، فستضيف مساحة قبل ذلك.
2: إذا وجدت سلسلة HTTP ، فسيتم اعتبارها عنوان URL وإضافة عناصر <a> على كلا الجانبين
3: إذا وجدت مسافات ، فسوف تستخدمها بدلاً من ذلك
حل المشكلة:
1: يتم استبدال vbscript بـ vbscript
2: استخدم "" HT "" + "" TP ... بدلاً من ذلك (هناك أكثر من زوج من التطبيقات في علامات الاقتباس وعلامات الاقتباس في VBS ، + يمثل الموصل)
3: استخدم المساحة بدلاً من ذلك (لاحظ لا)
في النهاية ، إنها مسألة إرسال ملف تعريف الارتباط:
1: يمكن أن يحصل عنصر التحكم على أي موقع ويب محليًا أو نشره ، ولكن لا يمكن استخدامه إلا في صفحة الويب.
الحصول على ، نشر الخادم الحالي. . . . وإلا فإن أي سيقول إنه سيرفض السؤال!
2: لا يمكن أن يكون لدى ملفات تعريف الارتباط شخصيات مع تفاعلات خاصة في عنوان URL
حل المشكلة: