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 проводиться виконання коду через браузери.