مقال : حل التحدي الثاني مع أسماء الفائزين
بعد نشر مقال التحدي الثاني لنا هنا والذي يتحدث عن إستغلال ثغرة xss – cross site scripting داخل مُختبر بسيط لنا ، ننشر لكم حله اليوم بإذن الله.
التحليل
isecur1ty-challenges.com/xss/beginner/level-2.php?xss=xxxx
يمكنك حقن الباي لود الخاص بك في xss كالعادة
أولاً يجب عليك ان تفهم الفلتر جيداً وتضع الفكرة الاساسية الكود موجود في الزر
<button form=’xss here’>HERE</button>
الفلتر :
- احداث الon تفلتر بقيم الاحرف الsmall الصغيرة ولا تفلتر بالكبيرة لذا يمكن حقن اي كود هنا .
- ال(“) و (>) و (<) ايضا مفلترات .
- الفراغات مفلترة .
- بين ال(‘) وكلمات alert, confirm ايضا يتم الفلترة لذلك يجب وضع مسافة .
تكوين الباي لود : الحل الاول .
بعد رؤية ما يقوم الفلتر به الان يجب ان تكون الباي لود الخاص بك
http://isecur1ty-challenges.com/xss/beginner/level-2.php?xss=xxxx
يوجد العديد من الحلول وبطرق مختلفة سنتظرق الى اسهل طريقة بدون اللجوء الى التعقيدات .
باعتبار ان ال<button > هناك العديد من الاحداث يكن حقنها هنا لكن بعض المشاركين حقنوا اكواد css انت لا تحتاج الى كود css لانه الزر ظاهر ولا يحتاج الى كود اظهار او تلاعب .
يمكنك معرفة ان <button > يقبل اتربيوت (formaction) يمكن وضع الaction الى رابط وتحويله الى جافا سكربت .
كل ما عليك فعله هو الاتي وضع علامة / بين الاتربيوت لعمل فاصلة لان الفراغ غير مسموح .
http://isecur1ty-challenges.com/xss/beginner/level-2.php?xss=xxx’/formaction=’javascript:alert(1)’x
نفتح السورس كود لنرى كيف يعمل الكود
قام بفلترة كلمة alert بمسح حرف الa نستنتج ان كلمة alert بعد ال(:) مفلترة .
يمكنك حل هذه المشكلة بطريقتين :
1- وضع فراغ بين الامر والعلامات /**/ سيمرره المتصفح كتعليق ولا يؤثر على الامر .
2- الاستعانة باوامر اخرى لحل التحدي منها confirm – prompt .
لنضع الان /**/ في الباي لود
http://isecur1ty-challenges.com/xss/beginner/level-2.php?xss=test’/formaction=’javascript:/**/alert(document.domain)xx
مفتح السورس كود
لا يوجد اي تغير في الكود لنرى ان كان يعمل بصورة جيدة ونضغط على HERE
الكود عمل بصورة طبيعية وبذلك تم الحل
الحل الأخر
يمكنك حقن احداث جافا سكربت مثل “onclick” تم فلترة هذه الاحداث بصورة الصغيرة فقط يمكنك التلاعب بالاحرف بجعل بعضها كبير وسوف يتم التخطي مثل حدث onclick يمكنك تخطي الفلتر بجعله oNcLick مثلاً لكن ستواجهك مشكلة هي مشكلة ان كل امر بعد = سيتم فلترته وكل امر بعد ‘ ايضا لذلك يجب وضع فراغ او استعمال بعد : prompt فهي غير مفلترة
يوجد العديد من الحلول اليكم بعضها :
http://isecur1ty-challenges.com/xss/beginner/level-2.php?xss=’onClick='(alert(/yahia-_-/))xx
http://isecur1ty-challenges.com/xss/beginner/level-2.php?xss=hello’/ONCLICK=’self.alert(document.domain)xx
http://isecur1ty-challenges.com/xss/beginner/level-2.php?xss=’onClick=’;alert(document.domain);xx
http://isecur1ty-challenges.com/xss/beginner/level-2.php?xss=’onClick=’!alert(1234)xx
أسماء الفائزين
- Mustafa Ahmed Abduljabber
- Alhasan A. Al-Nasiry
- Bahmed Mohamed
- يحي عبد الواحد بولحية
- Mohammed Diaa
- Mesh3L
- lotfi
- Mohamed A. Baset
- ismail belghit
- Mazin Ahmed
- Saad AlJarallah
- Abdullah
- Mohammad AlTawil
- sudqi jawabreh
- Mohamed Tahar Kedjour
- BeM DH
- Ahmed Hussien Mohamed Abo-Taleb
- Ishaq Sayid
- Musab Moh. Salih
- Hammami Chouaib
- Asim Jaweesh
- Faisal Ait Hamou
- Yazan Tommalieh
- Sick-Sec(Gamal Nigm)
- s3cure
- Raad Haddad
- Koutrouss Naddara
- Mustafa Hasan
شكراً لل 900 مشارك في التحدي ومبروك للفائزين وحظاً أوفر للذين لم يكتشفوا الحل ولنا لقاء أخر في تحديات المحترفين.
i try many browser like chrome and firefox and tor and snadcat but i cant get that window popup i try all that adress and i try to desactivate anti xss protecion in chrome and firefox but i still the same when i clic HERE nothing happen
المشكلة في علامة التنصبص ‘ حاول استبدالها (اطبع علامة التنصيص من عندك).
مشكور ياغالي
المشكلة في علامة التنصبص ‘ حاول استبدالها (اطبع علامة التنصيص من عندك).