Архів для категорії 'Статті'

Обхід фільтрів для проведення XSS атак

23:59 14.02.2013

На початку 2008 року, 03.02.2008, я проводив дослідження власного веб додатку і намагався перевірити можливість обходу фільтрів для проведення XSS атаки. Зокрема з використанням спеціальних символів для розділення імені тега та його властивостей. Це може знадобитися як для обходу XSS фільтрів, так і в тих випадках, де теги не фільтруються, але є обмеження на символи (наприклад, пробіл), тому потрібно використати інший символ для розділення імені тега та його властивостей з метою проведення XSS атаки. Нерідко стикаюся з такими сайтами, де фільтруються деякі символи.

Приклад XSS коду, де можуть знадобитися такі символи:

<img src='1' onerror=alert(document.cookie)>

Між назвою тега “img” і властивістю “src” повинен стояти пробіл. Але якщо цей символ заборонений (в конкретному веб додатку), то потрібно використати інші.

В той день я розробив спеціальну програму для перевірки з якими символами-роздільниками працює виконання скриптів в тегах. За допомогою цієї програми я згенерував html-сторінку для перевірки 256-символів ASCII в якості роздільників. Тоді я перевірив це на своєму браузері Mozilla 1.7.x. І ось через п’ять років, на початку цього місяця, я знайшов цю програму і вирішив перевірити на ній усі наявні в мене браузери (Firefox, IE, Chrome та Opera). Результати перевірки пропоную вашій увазі.

Зазначу, що в зв’язку зі змінами в коді Firefox (які я виявив пару років тому), код який працював в Mozilla та Firefox 3.0.х, вже не працює в більш нових версіях Firefox (а також в Chrome та Opera). Тому код для тестування довелося змінити, щоб протестувати ці браузери. А в Firefox 10 і 15 взагалі не працював код з “img onerror”, тому для тестування нових версій Firefox я зробив тест з “img onload”.

Наступні символи можуть використовуватися в якості роздільників між іменем тега та його властивостями (це в десятковій системі):

Mozilla 1.7.x:

Символи: 0, 8, 9, 10, 13, 32, 34.

Mozilla Firefox 3.0.19, 3.5.19, 3.6.28:

Символи: 9, 10, 13, 32, 47.

В Mozilla Firefox 10.0.7 ESR, 15.0.1:

Символи: 9, 10, 12, 13, 32, 47.

Internet Explorer 6, 7, 8:

Символи: 9, 10, 11, 12, 13, 32, 47.

Chrome 1.0.154.48:

Символи: 9, 10, 11, 12, 13, 32.

Opera 10.62:

Символи: 9, 10, 12, 13, 32, 47.

Mobile Safari 6.0.1, 8.4.1

Символи: 9, 10, 12, 13, 32, 47.

Також я розмістив дану програму в розділі Обхід XSS фільтрів, де ви можете перевірити ваш браузер.

Викрадення рухів курсору в Internet Explorer

22:40 12.02.2013

Продовжуючи розпочату традицію, після попереднього відео про три генерації DoS атак, пропоную нове відео на веб секюріті тематику. Цього разу відео про викрадення рухів курсору в IE. Рекомендую подивитися всім хто цікавиться цією темою.

IE Cursor Exploit Demo

Наприкінці минулого року була оприлюднена уразливість в Internet Explorer, що призводить до витоку інформації про рухи курсору. Коли веб сторінка в браузері IE може відстежити будь-які переміщення мишею, навіть не пов’язані з нею (навіть в інших програмах запущених користувачем - на рівні ОС). І дане відео демонструє цей процес.

Атака відбувається при відвідуванні в IE спеціально створеного веб сайта, що містить код експлоіту. Рекомендую подивитися дане відео для розуміння векторів атак на браузери.

“Error” Google хакінг №3

23:52 31.01.2013

Продовжу тему “Error” Гугл хакінга (”Error” Google hacking). Котрий є різновидом Гугл хакінга - використання пошукових систем (зокрема Гугла) для пошуку уразливостей на сайтах.

Дана методика передбачає використання Гугла (чи інших пошукових систем) з метою пошуку повідомлень на сайтах про помилки, і дозволяє знайти важливу інформацію стосовно даних сайтів. За допомогою спеціальних пошукових запитів (дорків) можна знайти Full path disclosure та Information leakage уразливості на різноманітних сайтах в Інтернеті.

Новий перелік “еррор” пошукових запитів:

“Fatal error” “on line”

“PHP Fatal error”

“Fatal error” main

“Fatal error” “Failed opening”

“Fatal error: Unable to read”

“Fatal error: Unable to open”

“Fatal error: Unable”

“Fatal error: Undefined class”

“Fatal error: Cannot redeclare”

“Internal Server Error”

Три генерації DoS атак

22:46 30.01.2013

Продовжуючи розпочату традицію, після попереднього відео про те, як хакнути мільйони роутерів, пропоную нове відео на веб секюріті тематику. Цього разу відео про три генерації DoS атак. Рекомендую подивитися всім хто цікавиться цією темою.

DEFCON 19: Three Generations of DoS Attacks (with Audience Participation, as Victims)

Півтора роки тому на конференції DEFCON 19 відбувся виступ Sam Bowne. В своєму виступі він розповів про DoS атаки. Від класичного UDP флуду, до сучасних атак на прикладному рівні, заснованих на використанні уразливостей у веб серверах.

Про один з таких методів атаки, Slowloris, я вже писав. Рекомендую подивитися дане відео для розуміння векторів DoS атак.

Атаки на банківські системи

20:07 26.01.2013

В статті Атаки на банковские системы розповідається про методи атак на банківські системи. Зокрема з використанням шкідливого програмного забезпечення, націленого на махінації із системами онлайн-банкінга. Це так звані банківські трояни - “банкери”. Які відомі вже багато років, але останнім часом вони стали більш поширеними зі зростанням кількості користувачів онлайн-банкінга. В статті описаний універсальний російський банківський троян Ibank.

В даній статті розглянуті наступні аспекти атак на системи ДБО:

  • Огляд методів атаки
  • Технології
  • Мішені
  • Схеми
  • Аналіз шкідливої програми Ibank
  • Загальні відомості
  • Інсталяція й особливості функціонування
  • Шпигунська діяльність
  • Механізм збору даних
  • Цільові системи
  • Блокування антивірусів
  • Мережева активність
  • Віддалене керування
  • Технологія автозаливу

Про уразливості в системі Інтернет-банкінгу IFOBS, що використовується багатьма українськими банками, я вже писав. Тому атакувати системи ДБО можна через уразливості в них. Або ж можна атакувати користувачів за допомогою троянів, як описано у даній статті. Таким чином тема безпеки онлайн-банкінгу зараз є дуже актуальною.

Протидія malware

22:46 25.01.2013

В презентації Malware mitigation, Ramses Gallego розповідає про шкідливе програмне забезпечення. Про поточну ситуацію зі шкідливим ПЗ в Інтернеті та про методи протидії йому.

Як хакнути мільйони роутерів

22:41 23.01.2013

Продовжуючи розпочату традицію, після попереднього відео про нові шляхи взлому веб додатків, пропоную нове відео на веб секюріті тематику. Цього разу відео про те, як хакнути мільйони роутерів. Рекомендую подивитися всім хто цікавиться цією темою.

Defcon 18 - How to hack millions of routers

Два з половиною роки тому на конференції DEFCON 18 відбувся виступ Craig Heffner. В своєму виступі він розповів про уразливості в роутерах та їх експлуатацію. Зокрема він розповім про атаки на роутери з використанням Cross-Site Request Forgery та DNS Rebinding. З використанням даних методів атак, можна захопити контроль над різними мережевими пристроями (з функцією роутера), яких сотні мільйонів по всьому світу.

Про ці методи, як про CSRF атаки, так і про про DNS Rebinding я вже писав. Про CSRF атаки на модеми і точки доступу я написав власну статтю CSRF Attacks on Network Devices та наводив чимало таких уразливостей в різних пристроях, а про DNS Rebinding я наводив різноманітні статті й відео від RSnake. Рекомендую подивитися дане відео для розуміння векторів атак на мережеві пристрої.

Цікаве чтиво на тему web security

22:45 11.01.2013

Продовжуючи традицію, пропоную вашій увазі цікаві секюріті статті. Щоб ви поповнювали свої знання з веб безпеки.

Добірка цікавого чтива на тему безпеки, в тому числі web security (статті з Вікіпедії):

Нові шляхи взлому веб додатків

22:42 09.01.2013

Продовжуючи розпочату традицію, після попереднього відео про просунуті SQL Injection, пропоную нове відео на веб секюріті тематику. Цього разу відео про нові шляхи взлому веб додатків. Рекомендую подивитися всім хто цікавиться цією темою.

28c3: New Ways I’m Going to Hack Your Web App

Наприкінці 2011 року на конференції 28c3 відбувся виступ Jesse Ou і Rich. В своєму виступі вони розповіли про нові техніки взлому веб додатків, такі як Clickjacking та методи обходу захисту від Clickjacking, обхід захисту від CSRF, експлуатація складних XSS, обхід SOP та атаки через XML.

Про деякі з цих методів я вже розповідав. Рекомендую подивитися дане відео для розуміння векторів атак на веб додатки.

Захист від XSS з JavaScript

17:25 29.12.2012

Продовжуючи тему технологій захисту від XSS атак, після статті про HttpOnly, розповім про іншу технологію захисту від XSS атак. Яку я розробив ще у лютому 2008 року. Цей метод використовує JavaScript для того щоб протидіяти XSS атакам.

Суть методу полягає в перевизначенні деяких методів DOM. Зокрема методу cookie класу document. Для цього потрібно вказати наступний JavaScript код:

HTMLDocument.prototype.__defineGetter__("cookie",function(){return null;});

Подібно до раніше описаного методу захисту з використанням HttpOnly, це вбереже від класичних атак на викрадення кукіса. Але це не вбереже від інших атак через XSS уразливості. Бо XSS атаки не обмежуються лише викраденням кукісів, про що я наголошував неодноразово.

Даний метод я побачив в IPB на початку 2008 року, коли досліджував виявлену мною Persistent XSS в IPB. В 2.х версіях движка цей алгоритм використовувся в якості XSS-фільтру, тому в браузерах Mozilla і Firefox не можна було дістатися кукісів.

Порівняно з HttpOnly, даний метод має ряд переваг:

1. На відміну від HttpOnly, цей метод підтримують не тільки нові браузери, але й старі. Якщо для Firefox підтримка того методу наявна лише з Mozilla Firefox 3.0.6, то підтримка цього методу є в усіх версіях Firefox, а також в старих версіях Mozilla і в усіх версіях Seamonkey (на яку було перейменовано програмний пакет Mozilla). Підтримуються усі браузери на движку Gecko та Opera (перевірялося в 10.62, можливо попередні версії також підтримуються).

2. Легкість впровадження. Для підтримки не потрібно додавати HttpOnly властивість до кукісів, достатньо розмістити необхідний JS код. Який може бути розміщений в js-файлі, що включений в усі сторінки сайта.

3. Окрім захисту від викраденням кукісів, цей метод можна розширити для захисту від інших видів XSS атак.

Наприклад, можна заборонити використання document.write, що унеможливіть створення іфреймів чи іншого html-коду для проведення CSRF атак чи розміщення шкідливого коду.

HTMLDocument.prototype.__defineGetter__("write",function(){return null});

Недолік лише один - підтримуються не всі браузери. Лише Mozilla Firefox (та інші браузери на движку Gecko) та Opera.

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