23.10.2008
Нещодавно, 06.10.2008, я знайшов Cross-Site Scripting уразливість в Opera. Як раз коли знайшов таку саму дірку в Google Chrome. Дірку виявив в останній на той час версії браузера 9.52 (нова версія 9.60 також може бути вразлива).
Детальна інформація про уразливість з’явиться пізніше. Спочатку повідомлю розробникам браузера.
29.10.2008
При збереженні сторінки зі “спеціальним” URL, в коді сторінки зберігається XSS код. І відбувається виконнання XSS коду при відкритті даної сторінки (причому її відкритті в будь-якому браузері, не тільки в Opera).
XSS:
http://site/?--><script>alert("XSS")</script>
Для атаки необхідно зберегти сторінку як mhtml файл (Web archive). Причому, якщо зберегти даний файл з розширенням mhtml, то при відкритті сторінки код не спрацює. Для того, щоб це обійти і запустити код потрібно зберегти mhtml файл з розширенням htm або html. Тоді код виконається при відкритті сторінки.
Дану уразливість я назвав Post Persistent XSS (Saved XSS), котра є підкласом Persistent XSS. Подібні уразливості можуть використовуватися для доступу до локальної файлової системи.
Для прихованої атаки можна використати iframe в коді сторінки:
<iframe src='http://site/?--><script>alert("XSS")</script>' height='0' width='0'></iframe>
Дірка аналогічна Cross-Site Scripting в Internet Explorer, про яку я писав в серпні 2007 року, та Cross-Site Scripting в Google Chrome.
Уразлива версія Opera 9.52 та попередні версії (наступні версії також можуть бути вразливими).