آسیب پذیری XXE

آسیب پذیری XXE

XXE مخفف XML external entity injection یک‌ آسیب پذیری تحت وب که به موجب آن مهاجم توانایی اجرای کد های مخرب XML را پیدا خواهیم کرد، با استفاده از این حمله فرد مهاجم توانایی پیاده سازی یک حمله DoS و یاهمان Denial-Of-Service را پیدا خواهد کرد حتی به این منظور توانایی خواندن فایل های Local درون سیستم را نیز دارد.

گاهی مواقع این آسیب پذیری را می توان به آسیب پذیری RCE تبدیل کرد و از طریق آن کد های مخرب خود را از راه دور بر روی سیستم اجرا کنیم.

در صورتی توانایی تبدیل این آسیب پذیری به RCE را داریم که وب سایت مورد نظر توانایی اجرای expect که یک Function در زبان برنامه نویسی PHP می باشد را داشته باشد.

این آسیب پذیری قابلیت تبدیل شدن به آسیب پذیری های دیگری همچون SSRF را نیز دارد و از طریق آن‌ مهاجم توانایی دسترسی به سرور ها و سیستم های درون شبکه آنرا پیدا خواهیم کرد. این آسیب پذیری زمانی رخ می دهد که ما توانایی تجزیه کد های XML و DTD را داشته باشیم.

بررسی XML:

مخفف Extensionible Markup Language می باشد. XML یک فرمت داده بسیار ساده و کاربرد می باشد که در اکثر سرور ها همچون SOAP, XML-RPC و REST برای فرمت های داده مختلفی ازجمله DOCX, HTML ,Exif-Data و فایل های SVG مورد استفاده قرار می گیرد.

بررسی DTD:

مخفف Document Type Definition می باشد و  مشخص کننده ساختار و Eleman های مجاز و خصوصیات یک داده XML است. به زبان ساده تر و با یک مثال جامع به اینصورت است که گروه های مستقل مردم می‌توانند با توافق در استانداردها با هم تبادل داده و اطلاعات نمایند از این رو یک اپلیکیشن با استفاده از DTD می تواند بررسی نماید که داده های XML معتبر است یا که خیر.

نحوه کشف آسیب پذیری XXE Injection :

این آسیب پذیری را می توان از طریق اسکنر های مختلف و قدرتمند در این زمینه کشف کنید، همچنین می توانید با تست نفوذ سنجی و بررسی آیا XML Parser در مکان خاصی از وب سایت رخ می دهد یا خیر این آسیب پذیری رو کشف کنید.

جلوگیری از آسیب پذیری XXE Injection:

ساده ترین راه جلوگیری از این حمله غیرفعال سازی DTD می باشد