Как да предпазим своята WordPress инсталация от Genericons Example.html XSS уязвимост

В този раздел ще намерите много интересни уроци, които може да са Ви от голяма полза!
1 мнение • Страница 1 от 1
Разширено търсене
Извън линия

HybridMind

Аватар
Администратор
Администратор
Теми: 109
Мнения: 332
Местоположение: var/www
Discord: HybridMind#6095
Пол: Мъж
OS: Windows
ISP: Virginia Media

През изминалата година беше открит критичен бъг в популярната система WordPress, който афектира милиони потребители. Уязвимостта включва компоненти, които използват шрифтовия пакет "Genericons" и може да остави уеб сайта ви уязвим към cross-site scripting (XSS) атаки. И до ден днешен обаче има потребители, които страдат от уязвимостта.

Обяснение на уязвимостта

Самата уязвимост е налична в пакета с шрифтове "Genericons", а не в самото ядро на WordPress. За нещастие обаче този шрифтов пакет се използва от официалната WordPress тема "TwentyFifteen". Това е и темата, която се инсталира по подразбиране от WordPress към днешна дата. Уязвимостта афектира също популярния плъгин за оптимизация "JetPack", който се използва в милиони активни уебсайтове, приставки и теми. Това са само няколко примера, а в действителност уязвимостта афектира и много други компоненти.

Въпросната уязвимост съществува в един единствен файл под името "example.html", който е включен в "Genericons" пакета. Този файл не е важен и е включен единствено за да има възможност за предварителен преглед на самия шрифт. Той съдържа jQuery код, в който е включена уязвимостта, позволяваща DOM базирани cross-site атаки. Всякакви теми и плъгини, използващи по-нови версии на "Genericons", без да са премахнали файла "example.html" са уязвими.

DOM базираната XSS атака работи, като се променя самата DOM среда и по този начин се изпълняват допълнителни скриптове, които не са включени в оригиналния дизайн. За да може да се използва уязвимостта, потребителят трябва да бъде подлъган да натисне специално изработен линк, докато вече е влязъл в своята WordPress инсталация. Ако апликацията има този тип уязвимост, сървърът няма как да я предотврати, тъй като тя се изпълнява в потребителския браузър. За щастие обаче отстраняването на дупката е изключително лесно в този случай.

Съдържа ли уебсайтът ми тази уязвимост?

Малко след като се разбра за този бъг, се появи нова версия на WordPress - 4.2.2, закърпваща уязвимостта. Ако сте инсталирали или обновили WordPress над тази версия, инсталацията ви трябва да не е уязвима. Ако имате WordPress под тази версия, е силно препоръчително да бъде обновена. Ако това е така, вашата WordPress инсталация ще изпише, че трябва да се премине към нова версия.

Ако разполагате със SSH, можете да проверите дали сте уязвими, като влезете в директорията на своята WordPress инсталация и изпълните следната команда:
Ако не разполагате със SSH, можете да влезете чрез FTP или своя файлов мениджър и да потърсите за файл с името "example.html" в директорията:
Код за потвърждение: Трябва да си влязъл в системата, за да можеш да виждаш линковете
wp-content/themes/<име на темата>/genericons/example.html
В тази директорията "<име на темата>" е използваната от вас тема, например twentyfourteen, twentyfifteen и т.н. Ако има уязвимост, можете да видите подобен резултат:
Код за потвърждение: Трябва да си влязъл в системата, за да можеш да виждаш линковете
./wp-content/themes/twentyfourteen/genericons/example.html
./wp-content/themes/twentyfifteen/genericons/example.html
Как да се предпазим от уязвимостта?

Препоръчителното действие ако сте уязвими е просто да обновите своята WordPress инсталация. Това не само ще закърпи уязвимостта, но може и да поправи други проблеми, които може и да са съществували от преди това. Обновлението на WordPress се извършва директно от неговия Kонтролен панел -> Табло - Обновления

Възможно е да се наложи да обновите своите теми и плъгини поотделно.

Ако не разполагате с възможност за обновление на своята WordPress инсталация, то алтернативен вариант е да премахнете уязвимия файл "example.html". Можете да направите това със следната команда директно под SSH:
Внимание!
Моля, регистрирайте се или влезте в акаунта си за да виждате всички мнения в темата