Про альтернативне кодування

У матеріалі мова йтиме про слабкості фільтрів вхідних даних при роботі з веб-серверами. Так наприклад, стрічки http://server/dir\..\..\..\winnt та http://server/dir/../../../winnt є еквівалентними. А це означає, що якщо проходить фільтрація символу «/» то я спокійно використаю символ «\» . А ще існує така річ як кодування url, utf-8, Unicode. Наприклад, стрічка, еквівалентна до попередньої прийме вигляд http://server/dir\..%5C..%5C..\winnt ( %5C те саме що і символ «\»). Багато фільтрів виконують пошук мета символів, але можуть пропустити деякі з них при наявності символу ESC . Він, зазвичай, встановлюється на початку керуючої послідовності символів. Без цього символу керуюча послідовність буде перетворена на інший символ:
1. Фільтр ESCn, де ESC та n залишаються як звичайні символи
2. ESCn, де ESC видаляється, а n залишається в якості звичайного символу.
n можна замінити символом повернення каретки чи NULL символом.
Наприклад, встановлення символу «\» на початку стрічки символів часом призводить до того, що аналізатор сприймає його як керуючий. Так, \0 сприймається як передача нульового байту, \t – перетворюється на табуляцію. Проблемою є також еквівалентність символів «\» та «/». Якщо ввести команду CWD ..\ /..\ /..\ /.. \ / winnt то зазвичай вона прийме вигляд CWD ../../../../winnt . Якщо символ «\» ігнорується то створюється серія можливостей для проведення атаки. Наприклад: CWD ..\?\?\?\?\ /..\ /..\ /..\ /winnt , CWD \ . \ . \ / \ .\ .\ / \ . \ /winnt , CWD .. \ | \ | \ | \ | \ / .. \ / .. \ / .. \ / winnt .
Про кодування можна писати і писати, аж поки чорнило не закінчиться. Так у 2000 році хакери офіційно оголосили про серйозну вразливість IIS сервера. Замість стрічки http://server/directiory/../../../winnt використовуючи unicode вводилась стрічка http://server/directory/%C0AE/%C0AE/%C0AE%C0AE/%C0AE%C0AEwinnt . Тобто в Unicode перетворення символів має вигляд: «.» -- C0 AE , «/» -- C0 AF , «\» -- C1 9C . А в якому році мікрософт залатала цю діру я навіть сказати боюся. Класичні атаки за допомогою альтернативного кодування можуть проводиться і з ІР адресами. Наприклад, еквівалентні адреси : http://msdn.microsoft.com , http://207.46.239.122 , http://3475959674 .
Отже, я продемонстрував конкретні приклади про те як спеціально підготовлені дані обходять механізми фільтрації. Висновок тут один – стандартних методів може бути замало для забезпечення захисту інформації. Доцільніше використовувати набір таких засобів.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <h1> <h2> <h3> <h4> <h5> <h6> <address> <em> <strong> <code> <del> <cite> <acronym> <blockquote> <q> <sub> <p> <br> <pre> <ul> <ol> <li> <dl> <dt> <dd> <a> <b> <u> <i> <table> <tr> <td> <th> <div> <sup><hr> <img>
  • Glossary terms will be automatically marked with links to their descriptions.
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
   888888  8888888b.          d8888     d8b                 888888b.    888        .d8888b.  
"88b 888 Y88b d88888 Y8P 888 "88b 888 d88P Y88b
888 888 888 d88P888 888 .88P 888 888 888
888 888 d88P d88P 888 8888 888 888 888 8888888K. 888 888 888
888 8888888P" d88P 888 "888 888 888 888 888 "Y88b 888 .88P 888
888 888 d88P 888 888 888 888 888 888 888 888888K 888 888
88P 888 d8888888888 888 Y88b 888 d88P 888 d88P 888 "88b Y88b d88P
888 888 d88P 888 888 "Y8888888P" 8888888P" 888 888 "Y8888P"
.d88P 888
.d88P" d88P
888P" 888P"
Enter the code depicted in ASCII art style.

© Інформаційні технології. Аналітика , Рідна Мережа