Міжконтекстний XSS - Cross Context Scripting
22:48 22.06.2010В статті Local XSS - Локальний XSS, я згадував про такий вид Cross-Site Scripting уразливостей, як Міжконтекстний XSS (Cross Context Scripting), також відомий як Cross-zone scripting. Розповім про нього більш детально.
Такий клас уразливостей як Cross-zone scripting - це відомий різновид XSS уразливостей. Дані уразливості мають місце у бразерах та в плагінах (розширеннях, тулбарах) для браузерів, а також додатках, що використовують браузерні движки (наприклад, в читачах фідів).
Зокрема дані уразливості мали місце в наступних бразерах та інших додатках:
- В Mozilla Firefox (та інших браузерах на движку Gecko): MFSA 2009-46 (Chrome privilege escalation due to incorrectly cached wrapper), MFSA 2009-51 (Chrome privilege escalation with FeedWriter), MFSA 2009-57 (Chrome privilege escalation in XPCVariant::VariantDataToJS()), MFSA 2009-70 (Privilege escalation via chrome window.opener), MFSA 2010-20 (Chrome privilege escalation via forced URL drag and drop) та інші випадки chrome privilege escalation.
- В Internet Explorer та браузерах на движку IE, таких як Sleipnir, Portable Sleipnir і unDonut.
- В Opera (декілька разів).
- А також в різних читачах фідів.
А також подібні уразливості знаходили в наступних плагінах для браузерів:
- Для IE - Darksky RSS bar.
- Для Firefox - Firebug, Sage (декілька разів), Fizzle, WizzRSS Reader, WizzRSS Reader Lite, ScribeFire, Feed Sidebar, Update Scanner, CoolPreviews, infoRSS.
- А також в QuickTime плагіні (для різних браузерів).
Cross-zone scripting - це інший вид XSS, ніж Local XSS. Тому що через ці уразливості в браузерах і плагінах до них можна виконати код на компьютері користувача (в локальному контексті), а не на веб сайті (в контексті даного сайту). Тобто через Cross-zone scripting атака відбувається на комп’ютер користувача (з його поточними правами), а через Local XSS - на веб сайт (з правами даного користувача). Але спільним для обох видів XSS є те, що дані уразливості проявляються в локальному ПЗ користувача.
Головною особливістю Міжконтекстного XSS є те, що дані уразливості використовується для доступу до компьютера користувача, зокрема для доступу до локальних файлів. Тобто через уразливості в браузері чи його плагіні JS (або VBS) код виконується не в зоні (контексті) Інтернет, а в локальній зоні (в термінології IE), або в chrome контексті (в термінології інших браузерів), що дозволяє отримати доступ до локальної файлової системи з правами даного користувача. Звідси й назва Cross-zone scripting або Cross Context Scripting.