Універсальне програмне забезпечення для салонів оптики, офтальмологічних клінік, кабінетів контактної корекції. Універсальне програмне забезпечення для салонів оптики, офтальмологічних клінік, кабінетів контактної корекції Комп'ютерна програма

У Joomla, після успішної реєстрації, користувачі можуть бути перевірені. login page(If account doesn"t need to be activated). user profile page. Це є будь-який, якщо ви маєте Login Redirection set to something else in Login Form Module.

Щоб змінити цей похід, ви можете відправити користувачів після registration на будь-яку іншу сторінку на вашому веб-сайті.
Для того, щоб скористатися файлом Joomla, він потрібний. Be aware that your changes може бути overwritten by a Joomla update. У будь-який момент зміни документів ви збираєтеся в core Joomla файли з тобою, що може швидко перейти до них, якщо потрібно.

Open file:
components/com_users/controllers/registration.php

Прокрутіть вниз до дуже глибокого. Starting line 162 or so you will have flowing code:

if ($return === "adminactivate" ) ( $this -> setMessage (JText:: _() ) ; $this -> setRedirect (JRoute:: _(, false ) ) ; ) else if ($return == = "useractivate" ) ( $this -> setMessage (JText:: _() ) ; $this -> setRedirect (JRoute:: _( "index.php?option=com_users&view=registration&layout=complete", false ) ) ; ) else ( $this -> setMessage (JText:: _() ) ; $this -> setRedirect (JRoute:: _( "index.php?option=com_users&view=login", false ) ) ; )

У цьому розділі ви маєте 3 links starting index.php?

  • Першим () є executed after user registration if account has to be activated by an administrator
  • Second ( index.php?option=com_users&view=registration&layout=complete), if account has to be activated by user
  • Third ( index.php?option=com_users&view=login), if account activation is not required.

Зміна повідомлень, залежно від типу registration ви використовуєте з FULL URL з вашого redirection page and you done.
Для прикладу, якщо user activation on my website не потрібна і не буде реdirect users після registration to http://www.mywebsite.com/welcome-reg the updated code will be:

// Redirect to the profile screen. if ($return === "adminactivate" ) ( $this -> setMessage (JText:: _( "COM_USERS_REGISTRATION_COMPLETE_VERIFY") ) ; $this -> setRedirect (JRoute:: _( "index.php?option=com_users&view=registration&layout=complete", false ) ) ; ) else if ($return === "useractivate" ) ( $this -> setMessage (JText:: _( "COM_USERS_REGISTRATION_COMPLETE_ACTIVATE") ) ; $this -> setRedirect (JRoute:: _( "index.php?option=com_users&view=registration&layout=complete", false ) ) ; ) else ( $this -> setMessage (JText:: _( "COM_USERS_REGISTRATION_SAVE_SUCCESS") ) ; $this -> setRedirect (JRoute:: _( "http://www.mywebsite.com/welcome-reg" , false ) ) ; )

Незважаючи на те, на яку сторінку на вашому веб-сайті ви перевірите, система message " Thank you for registering..." will be still displayed. If you don"t want this message, remove full line above your redirection URL. e.g. $this->setMessage(JText::_("COM_USERS_REGISTRATION_SAVE_SUCCESS"));

Якщо ви не потребуєте account activation (New User Account Activation set to None) Це is all you need to avoid User Profile page. However, if user has active account via email (Account Activation set to Self) this may not be enough. Безпосередньо після реєстрації користувача буде перенаправлено на веб-сторінку, яку ви провели в коді як виявлено. Але, коли користувачі клацніть на повідомленні в режимі електронної пошти, вони повинні бути попередньо mentioned login form і якщо вони використовуються для того, щоб зареєструвати, вони будуть використовуватися в User Profile page. Для того, щоб скористатися цим може бути неможливим User Profile page completely and instead redirect users до any page you like. Докладніше цей матеріал до find out how.

Joomla 1.6
Joomla 1.7
Joomla 2.5

Сьогодні ми розглянемо експлуатацію критичної 1day-уразливості у популярній CMS Joomla, яка прогриміла на просторах інтернету наприкінці жовтня. Йтиметься про вразливості з номерами CVE-2016-8869, CVE-2016-8870і CVE-2016-9081. Усі три походять з одного шматочка коду, який п'ять довгих років нудився в надрах фреймворку в очікуванні свого часу, щоб потім вирватися на волю і принести з собою хаос, зламані сайти та сльози ні в чому не винних користувачів цієї Joomla. Лише найдоблесніші і сміливіші розробники, чиї очі червоні від світла моніторів, а клавіатури завалені хлібними крихтами, змогли кинути виклик нечисті, що розбушувалася, і покласти її голову на вівтар фіксів.

WARNING

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

З чого все почалося

6 жовтня 2016 Деміс Пальма (Demis Palma) створив топік на Stack Exchange , в якому поцікавився: а чому, власне, в Joomla версії 3.6 існують два методи реєстрації користувачів з однаковою назвою register() ? Перший знаходиться в контролері UsersControllerRegistration, а другий - у UsersControllerUser. Деміс хотів дізнатися, чи використовується десь метод UsersControllerUser::register() , або це лише еволюційний анахронізм, що залишився від старої логіки. Його турбував той факт, що навіть якщо цей метод не використовується жодним уявленням, він може бути викликаний за допомогою сформованого запиту. На що отримав відповідь від девелопера під ніком itoctopus, який підтвердив: проблема справді існує. І направив звіт розробникам Joomla.

Далі події розвивалися найшвидшим чином. 18 жовтня розробники Joomla приймають репорт Деміса, який на той час накидав PoC, що дозволяє реєструвати користувача. Він опублікував замітку на своєму сайті, де загалом розповів про знайдену проблему та думки з цього приводу. Цього ж дня виходить нова версія Joomla 3.6.3, яка все ще містить уразливий код.

Після цього Давид Тампелліні (Davide Tampellini) розкручує баг до стану реєстрації не простого користувача, а адміністратора. І вже 21 жовтня команді безпеки Joomla прилітає новий кейс. У ньому вже йдеться про підвищення привілеїв. У цей же день на сайті Joomla з'являється анонс про те, що у вівторок, 25 жовтня, буде випущено чергову версію з порядковим номером 3.6.3, яка виправляє критичну вразливість в ядрі системи.

25 жовтня Joomla Security Strike Team знаходить останню проблему, яку створює виявлений Деміс кусок коду. Потім у головну гілку офіційного репозиторію Joomla пушиться коміт від 21 жовтня з непримітною назвою Prepare 3.6.4 Stable Release, який фіксує злощасний баг.

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

27 жовтня дослідник Гаррі Робертс (Harry Roberts) викладає в репозиторій Xiphos Research готовий експлоїт, який може завантажувати PHP-файл на сервер із вразливою CMS.

Деталі

Що ж, з передісторією покінчено, переходимо до найцікавішого – розбору вразливості. Як піддослідна версія я встановив Joomla 3.6.3, тому всі номери рядків будуть актуальні саме для цієї версії. А всі шляхи до файлів, які ти побачиш далі, вказуватимуться щодо кореня встановленої CMS.

Завдяки знахідці Деміса Пальми ми знаємо, що є два методи, які виконують реєстрацію користувача у системі. Перший використовується CMS і знаходиться у файлі /components/com_users/controllers/registration.php:108. Другий (той, що нам і потрібно буде викликати), живе в /components/com_users/controllers/user.php:293. Подивимося на нього ближче.

286: /** 287: * Method to register a user. 288: * 289: * @return boolean 290: * 291: * @since 1.6 292: */ 293: public function register() 294: ( 295: JSession::checkToken("post") or jexit(JText::_ ("JINVALID_TOKEN"));... 300: // Get the form data.301: $data = $this->input->post->get("user", array(), "array"); .. 315: $return = $model->validate($form, $data); 316: 317: // Check for errors. / Finish the registration 346: $return = $model->register($data);

Тут я залишив лише цікаві рядки. Повну версію вразливого методу можна переглянути у репозиторії Joomla.

Розберемося, що відбувається при звичайній реєстрації користувача: які дані надсилаються та як вони обробляються. Якщо реєстрація користувачів включена в налаштуваннях, форму можна знайти за адресою http://joomla.local/index.php/component/users/?view=registration .


Легітимний запит на реєстрацію користувача виглядає як наступний скріншот.


За роботу з користувачами відповідає компонент com_users. Зверніть увагу на параметр task у запиті. Він має формат $controller.$method. Погляньмо на структуру файлів.

Імена скриптів у папці controllersвідповідають назвам контролерів, що викликаються. Так як у нашому запиті зараз $controller = "registration", то викличеться файл registration.phpта її метод register() .

Увага, питання: як передати обробку реєстрації вразливе місце в коді? Ти, напевно, вже здогадався. Імена вразливого і реального способів збігаються (register), тому нам досить змінити назву викликаного контролера. А де в нас знаходиться вразливий контролер? Правильно, у файлі user.php. Виходить $controller = "user". Збираємо всі разом і отримуємо task=user.register. Тепер запит на реєстрацію опрацьовується потрібним нам методом.


Друге, що нам потрібно зробити, - це надіслати дані у правильному форматі. Тут усе просто. Легітимний register() чекає від нас масив під назвою jform, в якому ми передаємо дані для реєстрації - ім'я, логін, пароль, пошту (див. скріншот із запитом).

  • /components/com_users/controllers/registration.php: 124: // Get the user data. 125: $requestData = $this->input->post->get("jform", array(), "array");

Наш підопічний отримує ці дані з масиву з ім'ям user.

  • /components/com_users/controllers/user.php: 301: // Get the form data. 302: $data = $this->input->post->get("user", array(), "array");

Тому змінюємо у запиті імена всіх параметрів із jfrom на user.

Третій наш крок - це знаходження валідного токена CSRF, тому що без нього жодної реєстрації не буде.

  • /components/com_users/controllers/user.php: 296: JSession::checkToken("post") або jexit(JText::_("JINVALID_TOKEN"));

Він виглядає як хеш MD5, а взяти його можна, наприклад, із форми авторизації на сайті /index.php/component/users/?view=login.


Тепер можна створювати користувачів за допомогою потрібного методу. Якщо все вийшло, то вітаю - ти щойно проексплуатував уразливість CVE-2016-8870"відсутня перевірка дозволів на реєстрацію нових користувачів".

Ось як вона виглядає в робочому методі register() з контролера UsersControllerRegistration:

  • /components/com_users/controllers/registration.php: 113: // If registration is disabled - Redirect to login page. 114: if (JComponentHelper::getParams("com_users")->get("allowUserRegistration") == 0) 115: ( 116: $this->setRedirect(JRoute::_("index.php?option=com_users&view= login", false)); 117: 118: return false; 119: )

А так у вразливому:

  • /components/com_users/controllers/user.php:

Ага, ніяк.

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

Продовження доступне лише учасникам

Варіант 1. Приєднайтесь до спільноти «сайт», щоб читати всі матеріали на сайті

Членство у спільноті протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалів «Хакера», збільшить особисту накопичувальну знижку та дозволить накопичувати професійний рейтинг Xakep Score!

Універсальне програмне забезпечення розроблене спеціально для салонів оптики, офтальмологічних клінік, кабінетів КК, лікарів офтальмологів.
Якісно новий рівень роботи салонів оптики та лікарів-офтальмологів.

Комп'ютерна програма "АРМО плюс"

(Медичний облік та торгівля)

  • Єдина картотека клієнтів на всіх робочих місцях та філіях.
  • Гнучка система знижок, робота з дисконтними картками.
  • Ведення та облік оптово-роздрібних продажів, послуг з виготовлення та ремонту окулярів, медичних послуг.
  • Оперативне введення та пошук інформації за найменуванням, за допомогою кодів, через сканер штрих-коду.
  • Оптимізація заявок на постачання товару у вигляді шаблонів. Мінімізація товарних запасів.
  • Автоматизоване введення даних медичних обстежень та формування лікарських виписок.
  • Виписка рецептів та автоматизація формування замовлень на окуляри. Облік послуг лікаря та майстра.
  • Адресна доставка оперативної інформації за допомогою розсилки SMS-повідомлень для запрошення клієнтів на консультативний прийом, планову заміну лінз; інформування про акції фірми.
  • Сумарні та детальні звіти щодо рухів грошових коштів та товарів, потоків клієнтів, роботи персоналу, фінансових результатів.
  • Можливість вивантаження даних з подальшим використанням у 1С:Бухгалтерії, інтернет магазині, інших програмах.
  • Контроль за індивідуальною активністю співробітників (продажу, направлення на обстеження, надання знижок клієнтам тощо).
  • Настроювання доступу користувачів до функцій програми.
  • Автоматизований обмін даними між віддаленими один від одного робочими місцями (філіями).
  • Високий ступінь захисту від несанкціонованого доступу та копіювання інформації. Автоматичне архівування бази даних.

"АРМО плюс" - система, що використовує технології розподіленої бази даних

Призначена для автоматизації:

Ведення оптово-роздрібного продажу;

Заявок на постачання товару, контролю руху товарів та залишків товарів на робочих місцях;

Ведення електронної картотеки клієнтів з даними офтальмологічних обстежень, щоденників консультативних оглядів, виписування рецептів та замовлень на окуляри;

Формування та виведення на друк даних медичних обстежень;

Формування звітів з рухів коштів та товарів, потоків клієнтів, результатів їх обстежень.

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

Довідники та Документи

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

Можливість одночасного виконання різних операцій

Картотека клієнтів

Особливу роль в «АРМО плюс» відведено віданняелектронної картотеки клієнтів. Уніфікована картотека клієнтів містить інформацію про первинні дані, анамнез, діагноз, візити, щоденник оглядів та офтальмологічних обстежень, виписку рецептів, замовлень на окуляри, дані про покупки, заявки та аванси клієнта. Програма формує звіти про продаж, замовлення та заявки клієнтів, виписки офтальмологічних обстежень. Для клієнтів настроюється гнучка схема знижок. Працює система оповіщень через СМС розсилку та e-mail повідомлення.


Основні звіти у “АРМО плюс”

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

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

Розподілена база даних та обмін даними

Технологія розподіленої бази даних дозволяє працювати територіально віддалених оптик, офтальмологічних кабінетів, філій. Інформація надсилається один одному через електронні пакети обміну. За рахунок цього досягається синхронність даних на віддалених робочих місцях. Так формується єдина картотека пацієнтівта база довідкової та документальної інформації Фірми, що працюють з «АРМО плюс», можуть обмінюватися між собою даними в електронному вигляді.


Сервіс при адмініструванні бази

Надійність роботи забезпечується засобами по збереженнюбази даних Збережені дані завжди можна відновити. Для стиснення бази передбачено вивантаження та очищення даних. «АРМО плюс» може вивантажувати даними у програму «1С:Підприємство», Excel, інтернет магазин.



Останні матеріали розділу:

Міжгалузевий балансовий метод
Міжгалузевий балансовий метод

Міжгалузевий баланс (МОБ, модель «витрати-випуск», метод «витрати-випуск») - економіко-математична балансова модель, що характеризує...

Модель макроекономічної рівноваги AD-AS
Модель макроекономічної рівноваги AD-AS

Стан національної економіки, за якого існує сукупна пропорційність між: ресурсами та їх використанням; виробництвом та...

Найкращий тест-драйв Olympus OM-D E-M1 Mark II
Найкращий тест-драйв Olympus OM-D E-M1 Mark II

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