Actionscript програмування, xss в htmltext і clicktag, wordpress і master-it

XSS в HtmlText і ClickTAG ActionScript

Колись давним давно, в минулому житті років 10 тому, мені необхідно було написати просту Flash гру на ActionScript.

Actionscript програмування, xss в htmltext і clicktag, wordpress і master-it
Мета для створення тестового додатку була дуже проста. Показати базовий рівень знань в ActionScript.

Завдання виявилося теж не складне:
Створити лабіринт, і обмежити його проходження однією хвилиною.
Природно ні про яку безпеку мови тоді взагалі не йшлося. В кінці поста ви навіть можете його спробувати пройти. 😀

Днями я знайшов скомпільованих файл тієї гри (исходник то вже і вдень з вогнем не знайдеш) і вирішив його просканувати HP SwfScan. Через кілька секунд з'явилося повідомлення про вразливою змінної, яка використовувалася в текстовому полі swf файлу.

Вектор атаки на таку змінну може виглядати так:

Головний винуватець бага - змінна HtmlVariable, яка не була проініціалізувати до її використання. Змінну, що не має значення за замовчуванням, можна порівняти з відром для сміття, в якому може знаходитися взагалі все що завгодно. Колись я вже про це писав тут.

І тут не важко здогадатися, що користувач може самостійно передати потрібне йому значення в вразливу змінну, і тим самим порушити логіку роботи веб додатки.

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

Не хочеться лізти в нетрі гри, тому наведу простий приклад використання txtField.htmlText який формується після натискання на об'єктний символ кнопка:

on (release)
// var HtmlVariable = "Болт";
if (txtFieldExists == false)
this. createTextField ( "txtField". this. getNextHighestDepth (), 270, 270, 160, 22);
txtField. html = true;
txtFieldExists = true;
>
txtField. htmlText = HtmlVariable;
>

В кінці поста ви зможете скачати скомпільований swf файл для тестування.

Точно така ж ініціалізація змінної ClickTAG всередині методу on (release) могла б врятувати батька російської демократії закрити уразливість FlashVar (ClickTAG).

Але щоб закінчити почате в попередній статті, хочеться додати ще кілька пропозицій щодо закриття уразливості в ClickTAG.

Тому рекомендація в даному випадку дуже проста:

Ця умова простежить за тим, щоб юзер був доставлений саме туди, куди він власне і планував.

Ну і на останок (для загального розвитку) ще кілька векторів для getURL і flash.external.ExternalInterface.call, які ви зможете протестувати в цьому swf файлі. Для початківців програмістів ActionScript, думаю буде дуже корисно.

on (release)
if (externalInterfaceVar! = undefined)
flash. external. ExternalInterface. call (_root .externalInterfaceVar);
>
>

І на завершення, моя перша (а інтуїція мені підказує, що і швидше за все остання) Flash гра лабіринт.

P.S.Лабірінт побудований таким чином, що на його проходження в середньому йде 50-55 секунд. Для коректного завершення гри необхідно увійти в «червоний» будиночок! Для навігації використовуємо стрілочки на клавіатурі. 😀

Цікаві матеріали по темі:

  • Як відновити пароль від email, або що таке Brute Force Attack?
  • Як перевірити сайт на віруси
  • Вірус заблокував доступ в інтернет
  • XSS в завантаженні XML на Flash сайтах

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

Даємо просвіта в маси! 😀
Безпека - основа кодинга. На розуміння цих простих слів, у початківців розробників йде багато часу. Але це потрібно знати, т. К. Зустрічаються проекти, творці яких про це навіть і гадки не мають.

Дякую за статтю!