‹ بازگشت به کتابخانه‌ی رایت‌آپ‌ها
XXE شدت: بحرانی

خواندن فایل سیستمی با یک External Entity ساده در XML

چگونه یک پارسر XML با پردازش DTD فعال، به ابزاری برای خواندن فایل‌های دلخواه سرور تبدیل می‌شود.

نویسنده: تیم PentesterHub

اگر پارسر XML به‌صورت پیش‌فرض DTD و external entity را پردازش کند، یک payload مثل زیر محتوای فایل /etc/passwd را در پاسخ XML بازمی‌گرداند:

<?xml version="1.0"?>\n<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>\n<foo>&xxe;</foo>

نحوه‌ی شناسایی

راه‌حل

غیرفعال‌کردن کامل پردازش DTD/external entity در تنظیمات پارسر XML (در اکثر زبان‌ها این یک تنظیم ساده و مستند است)؛ این تنها دفاع واقعی و کافی است.

تمرین عملی در آزمایشگاه‌های XXE ›