Post Persistent XSS (Saved XSS) уразливості

22:46 22.11.2008

В минулому році, 14.08.2007, я виявив новий тип Cross-Site Scripting уразливостей, що є підтипом Persistent XSS, який я назвав Post Persistent XSS (Saved XSS). Дані уразливості можуть використовуватися для доступу до локальної файлової системи. А також, як я виявив нещодавно, для виконання коду через браузери.

Всього я виявив Saved XSS уразливості в наступних браузерах: Internet Explorer (IE6 та IE7), Chrome та Opera. Про дані XSS я писав в проекті День багів в браузерах 2.

Спочатку я виявив 14.08.2007 дану XSS уразливість в Internet Explorer. А потім, 06.10.2008, виявив подібну уразливість в Google Chrome та Opera.

Проведення атаки.

При збереженні сторінки зі “спеціальним” URL, в коді сторінки зберігається XSS код. І відбувається виконання XSS коду при відкритті даної сторінки (причому її відкритті в будь-якому браузері, не тільки в тому, в якому вона зберігалася).

XSS:

http://site/?--><script>alert("XSS")</script>

Для прихованої атаки можна використати iframe в коді сторінки:

<iframe src='http://site/?--><script>alert("XSS")</script>' height='0' width='0'></iframe>

За допомогою даної атаки можна розмістити XSS код на будь-якому сайті. В тому числі й на сайтах на яких немає Cross-Site Scripting уразливостей (або вони ще не знайдені). І потім потрібно лише змусити жертву зберігти дану веб сторінку, щоб коли вона (або інший користувач) відкриє цю сторінку, виконався XSS код.

До речі, як я писав нещодавно в записах Code Execution через XSS та Міжбраузерний Code Execution через XSS, дані Saved XSS уразливості можуть бути використанні для проведення Code Execution атак. Коли через дані XSS проводиться виконання коду через браузери.


4 відповідей на “Post Persistent XSS (Saved XSS) уразливості”

  1. trovich каже:

    Не зрозуміло, в яких саме випадках спрацьовує ця вразливість.

    Справа в тому, що, наприклад Опера 9.60 (Linux) зберігає інформацію про урл джерела в url encoded вигляді:
    ?–%3E%3Cscript%3Ealert(%22XSS%22)%3C/script%3E

    Щодо IE не скажу, бо в мене його нема.

  2. MustLive каже:

    Сергій.

    Як ти можеш прочитати в описі Saved XSS дірки в Опері, дірка спрацює при збереженні сторінки як Web Archive (і при цьому зберігти файл треба з розширенням htm/html, для виконання коду). Саме в цьому випадку Opera зберігає урл не в url encoded вигляді, а в ASCII.

  3. trovich каже:

    Як ти можеш прочитати в описі Saved XSS дірки в Опері,
    Для того треба було прочитати стару статтю аж через два посилання ;)

  4. MustLive каже:

    Можна було прочитати статтю через дві лінки (лінка на Міжбраузерний Code Execution через XSS і потім лінка на опис Saved XSS в Опері), а можна було і через одну лінку. Зі словом “Opera” яка - в цій статті я зробив лінку на опис Saved XSS в Opera ;-) . Для того ж лінки й дають, щоб за додатковою інформацією можна було по ним зайти.

Leave a Reply

You must be logged in to post a comment.