
ثغرة برمجة نصية عبر المواقع مخزنة في "usememos" عبر SVG
الأمر بسيط جدًا، فـ XSS المخزنة عبر SVG هي طريقة شائعة جدًا لاكتشاف الـ Cross-Site Scripting في البرية، لذا كانت من أول الأشياء التي قمت بها.
قمت بنشر usememos عبر Pikapods، ثم انتقلت إلى الصفحة الرئيسية وأنشأت حسابًا. باستخدام الحساب، قمت بإنشاء 'thought':
ثم قمت بإنشاء ملف SVG يحتوي على الحمولة التالية:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
</svg>
هذه الحمولة تنفذ JavaScript، مما يؤدي إلى طباعة ‘document.domain’ (أي أنها تظهر فقط ‘*.pikapod.net’). قمت باختيار الملف، وفي هذه الحالة كان اسمه xss6.svg ثم تمكنت من ‘نسخ عنوان الصورة’:
كما تلاحظ، لا يتم تنفيذ XSS داخل الصفحة الرئيسية، للأسف. جربت بعض المناورات لجعلها تعمل، لكن دون نجاح. لذا عند إدخال عنوان URL المنسوخ، تظهر نافذة منبثقة لـ XSS – مما يكشف عنوان URL:
لمزيد من المعلومات حول هذه الثغرة، راجع مقالتي على: https://tiem.io/cves/cve-2025-50738-stored-xss-via-svg/