Cross-Site Scripting уразливості в ZeroClipboard
23:52 20.02.2013У лютому, 17.02.2013, я провів дослідження Cross-Site Scripting уразливостей в ZeroClipboard. Про що вже повідомив розробникам (старим і новим розробникам цього веб додатку).
Про ZeroClipboard я писав у вересні 2011 в статті Атаки через буфер обміну. Тоді я не проводив перевірки ZeroClipboard, лише звернув увагу на XSS через копіювання у буфер обміну та при вставці в html-форми.
На початку року hip провів перевірку ZeroClipboard. Він звернув увагу лише стосовно флешки в плагіні WP-Table Reloaded, але це не лише частина плагіна, а окремий додаток, що використовується в багатьох веб додатках і на багатьох сайтах.
Я раджу замість атакуючого коду hip використати мій варіант коду - в цьому випадку не буде зациклення алертбоксу. У версії флешки в WP-Table Reloaded XSS працює лише з параметром id (це явно модифікована версія флешки). Зате в офіційній версії ZeroClipboard без &width&height не спрацює і потрібно вказувати всі параметри.
XSS (WASC-08):
В оригінальній версії від Joseph Huckaby є дві флешки (ZeroClipboard.swf та ZeroClipboard10.swf), а нові версії від Jon Rohan і James M. Greene мають лише одну флешку (ZeroClipboard.swf).
http://site/ZeroClipboard.swf?id=%22))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//&width&height
http://site/ZeroClipboard10.swf?id=%22))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//&width&height
Також є XSS через текст, який копіюється в буфер обміну (clipText). І на тестовій сторінці (test.html), де виводиться інформація про те, який текст був скопійований, відбудеться виконання XSS коду, або при його вставці у html-форми, що вразливі до XSS через вставку (як я описав у вищезгаданій статті).
Це дуже поширена флешка (через Гугл дорки можна знайти десятки тисяч сайтів з ZeroClipboard.swf чи ZeroClipboard10.swf). Цю та інші флекши для копіювання в буфер обміну я бачив на багатьох сайтів в Інтернеті. Ось приклад на www.slideshare.net.
XSS:
Уразливі ZeroClipboard 1.0.7 та попередні версії. XSS через параметр id і через буфер обміну були виправлені в нових версіях ZeroClipboard від нових розробників. Остання версія ZeroClipboard 1.1.7 невразлива.