XXE Injection
XXE (XML External Entity) injeksiyası, bir tətbiqin XML girişindəki zəif nöqtələrini istismar edən (exploiting vulnerabilities) bir təhlükəsizlik boşluğu növüdür.
XML fayllarının daxilində başqa bir yeri istinad olaraq göstərən "external entity" adlı struktur ola bilər. Məsələn, bir XML faylının içində "Buna bax!" deyərək, kompüterin başqa bir yolundakı faylı istinad göstərən bir fayl ola bilər. Normalda, bu cür istinadlar güvənli və kontrollu şəkildə edilir. Ancaq, tətbiq bu istinadları düzgün kontrol etməsə, tətbiqin sistemdəki başqa fayllara müraciət etməsini, serverdən çölə sorğu göndərməsini və ya başqa zərərli əməliyyatlar etməsini təmin edə bilər. Bundan əlavə, təcavüzkarlar, uzaqdan kod çalışdıra bilər.
Veb tətbiqlərdə, xüsusən də veb xidmətlərdə və SOAP əsaslı API-larda XML-in geniş istifadə edildiyini nəzərə alsaq, bu cür zəif nöqtələri, sadə qüsur olaraq qiymətləndirmək olmaz.
XML nədir?
XML (Extensible Markup Language), dataları strukturlaşdırmaq və saxlamaq üçün istifadə olunan bir mətn formatıdır. XML sənədləri, müəyyən bir qaydaya görə etiketlərlə strukturlandırılır və insan tərəfində oxuna bilər. XML-in təməl strukturlarına baxaq: Tag, Attribute və Entity references.
Tags
XML sənədləri, datanı tanımaq üçün etiketlər istifadə olunur. Hər etiket bir açılış (<tag>
) və bağlanış (</tag>
) strukturuna sahibdir. Bu etiketlər, datanın nə olduğunu müəyyən edir. Məsələn:
Burada <user>
etiketi bir istifadəçini təmsil edir. Daxilində <name>
və <email>
etiketləri var.
Attributes
Etiketlər, əlavə məlumat daşımaq üçün atributlar istifadə edə bilər. Atributlar, etiketin daxilində tanınır və key="value"
formatında olur. Məsələn:
Burada, <user>
etiketi id="101"
adlı bir atribut ehtiva edir. Bu, istifadəçinin kimliyini müəyyən edən əlavə bir məlumatdır.
Entity References
XML, bəzi xüsusi xarakterləri təmsil etmək üçün varlıq istinadları istifadə edir. Bu istinadlar, müəyyən xarakterləri və ya çöl fayllara edilən istinadları XML daxilində göstərmək üçün istifadə olunur.
Xüsusi xarakter referansları: Məsələn, XML-də <
, >
kimi xarakterlərin xüsusi mənası var. Bu xarakterləri, data olaraq istifadə etmək üçün varlıq istinadları istifadə olunur.
<
əvəzinə<
>
əvəzinə>
&
əvəzinə&
Burada, <
ilə <
xarakteri təmsil olunur.
External Entities: Varlıq istinadları eyni zamanda xarici resurslara və ya fayllara müraciəti ifadə edə bilər. Bu xüsusiyyət XXE hücumlarında pisniyyətli olaraq istifadə oluna bilər. Məsələn:
Burada, &example;
xarici bir resursa (fayla) istinad edir. Bu, serverdəki faylların çəkilməsi kimi hücumlara yol aça bilər.
Last updated