Domov Prevence Univerzální software pro optické salony, oční kliniky, kontaktní korekce. Univerzální software pro optické salony, oftalmologické kliniky, kontaktní korekce Pokračování k dispozici t

Univerzální software pro optické salony, oční kliniky, kontaktní korekce. Univerzální software pro optické salony, oftalmologické kliniky, kontaktní korekce Pokračování k dispozici t

Univerzální software navržený speciálně pro optické salony, oftalmologické kliniky, QC kanceláře a oftalmology.
Kvalitativně nová úroveň práce pro optické salony a oftalmology.

Počítačový program "ARMO plus"

(medicínské účetnictví a obchod)

  • Jednotný soubor klientů na všech pracovištích a pobočkách.
  • Flexibilní systém slev, práce se slevovými kartami.
  • Vedení a účetnictví pro velkoobchodní a maloobchodní prodej, služby pro výrobu a opravy brýlí, lékařské služby.
  • Rychle zadávejte a vyhledávejte informace podle jména, pomocí kódů, pomocí čtečky čárových kódů.
  • Optimalizace požadavků na dodávku zboží pomocí šablon. Minimalizace zásob.
  • Automatizované zadávání dat lékařské prohlídky a generování lékařských poznámek.
  • Vydávání receptů a automatizace tvorby objednávek na brýle. Vyúčtování služeb lékaře a magistra.
  • Cílené doručování provozních informací pomocí SMS zpráv k pozvání klientů ke konzultaci nebo plánované výměně čočky; informování o akciích společnosti.
  • Souhrnné a podrobné reporty o pohybu hotovosti a zboží, zákaznických tocích, personální práci, finančních výsledcích.
  • Možnost stahování dat pro následné použití v 1C: Účetnictví, internetový obchod a další programy.
  • Sledování individuální činnosti zaměstnanců (prodeje, doporučení na vyšetření, poskytování slev klientům apod.).
  • Konfigurace uživatelského přístupu k funkcím programu.
  • Automatizovaná výměna dat mezi vzdálenými pracovními stanicemi (pobočkami).
  • Vysoký stupeň ochrany proti neoprávněnému přístupu a kopírování informací. Automatická archivace databáze.

"ARMO plus" je systém využívající distribuované databázové technologie

Určeno pro automatizaci:

Provádění velkoobchodního a maloobchodního prodeje;

Aplikace pro dodávku zboží, kontrolu pohybu zboží a zbývajícího zboží na pracovištích;

Vedení elektronického souboru klientů s daty z oftalmologických vyšetření, deníků konziliárních vyšetření, vystavování receptů a objednávek brýlí;

Tvorba a tisk dat lékařských vyšetření;

Generování zpráv o pohybu hotovosti a zboží, tocích zákazníků a výsledcích jejich průzkumů.

Pro organizaci spolehlivého a bezpečného provozu poskytuje program rozdělení do rolí, které určují uživatelská práva a jejich přístup k informacím. Technologie distribuovaná databáze vám umožní provádět provoz sítě optických prodejen a oftalmologických ordinací.

Adresáře a dokumenty

Pro ukládání a systematizaci dat, rychlé vyplňování dokumentů, zpráv, spisů pacientů atd. pokud referenční knihy. Adresáře mají uživatelsky přívětivé rozhraní a práce s nimi je intuitivní S pomocí dokumenty zadávají se informace o obchodních a finančních transakcích, zadávají se požadavky na zboží, zapisují se zůstatky Přístup k adresářům a dokumentům určuje správce programu,přidělování konkrétních „práv“ uživatelům

Možnost současného provádění různých operací

Soubor klienta

Zvláštní roli v ARMO Plus má údržbaelektronický soubor klienta. Jednotný klientský soubor obsahuje informace o primárních datech, anamnéze, diagnóze, návštěvách, deník vyšetření a oftalmologických vyšetření, receptury, objednávky brýlí, údaje o nákupech, aplikacích a zálohách klienta. Program generuje reporty o prodejích, objednávkách a poptávkách klientů a výpisy z oftalmologických vyšetření. Pro klienty je nastaveno flexibilní slevové schéma. K dispozici je systém upozornění prostřednictvím SMS a e-mailových zpráv.


Základní reporty v ARMO Plus

  • souhrnné a podrobné zprávy o příjmech, výdajích, zůstatcích, obratech
  • zprávy o příjmech
  • předběžné zprávy o dokumentech a spisech
  • zprávy o kontrole cen spotřebního materiálu
  • zprávy o aplikacích a objednávkách brýlí
  • zprávy o trvanlivosti
  • zprávy dokumentů
  • zprávy o klientech, očekávané návštěvy, zdroje klientů
  • zprávy o zákaznických slevách
  • souhrnné a podrobné zprávy o personálu

Kromě účetních a analytických funkcí se zprávy používají ke sledování práce zaměstnanců, prodeje a toků zákazníků.

Distribuovaná databáze a výměna dat

Technologie distribuované databáze umožňuje práci geograficky vzdálených optiků, oftalmologických pracovišť a poboček. Informace se mezi sebou přenášejí prostřednictvím elektronických výměnných paketů. Díky tomu je dosaženo synchronizace dat na vzdálených pracovních stanicích. Takto se tvoří jednotná kartotéka pacientů a databáze referenčních a dokumentárních informací Firmy pracující s ARMO Plus si mohou vzájemně vyměňovat data elektronicky.


Služba správy databáze

Spolehlivost provozu je zajištěna pomocí zachování Databáze Uložená data mohou být vždy obnovit. Pro komprimaci databáze je zajištěno vykládání a čištění dat. plechovka ARMO plus nahrajte data do programu 1C:Enterprise, Excel, online obchod.

V Joomle jsou po úspěšné registraci uživatelé standardně přesměrováni na a přihlašovací stránka(pokud účet není nutné aktivovat) Odtud (po přihlášení) jsou uživatelé přesměrováni na a uživatelský profil strana. To se stane, i když máte přesměrování přihlášení nastaveno na něco jiného Modul přihlašovacího formuláře.

Chcete-li toto chování změnit, můžete uživatele po registraci přesměrovat na jakoukoli jinou stránku na vašem webu.
Chcete-li to provést, musíte upravit základní soubor Joomla. Uvědomte si, že vaše změny mohou být přepsány aktualizací Joomla. Vždy dokumentujte změny, které provedete v základních souborech Joomla, abyste je mohli v případě potřeby rychle znovu provést.

Otevřít soubor:
komponenty/com_users/controllers/registration.php

Přejděte dolů až úplně dolů. Počínaje řádkem 162 nebo tak budete mít plynulý kód:

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", Nepravdivé ) ) ; ) else ( $this -> setMessage (JText::_() ) ; $this -> setRedirect (JRoute::_( "index.php?option=com_users&view=login", Nepravdivé ) ) ; )

V této sekci máte 3 odkazy začínající index.php?

  • První () se provede po registraci uživatele, pokud účet musí být aktivován administrátorem
  • Druhý ( index.php?option=com_users&view=registration&layout=complete), pokud musí být účet aktivován uživatelem
  • Třetí ( index.php?option=com_users&view=login), pokud není vyžadována aktivace účtu.

Nahraďte odkazy v závislosti na typu registrace, kterou používáte, FULL URL vaší přesměrovací stránky a máte hotovo.
Pokud například není vyžadována aktivace uživatele na mém webu a chci uživatele po registraci přesměrovat na http://www.mywebsite.com/welcome-reg aktualizovaný kód bude:

// Přesměrování na obrazovku profilu. if ($return === "adminactivate" ) ( $this -> setMessage (JText::_( "COM_USERS_REGISTRATION_COMPLETE_VERIFY")); $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", Nepravdivé ) ) ; ) else if ($return === "useractivate" ) ( $this -> setMessage (JText::_( "COM_USERS_REGISTRATION_COMPLETE_ACTIVATE")); $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", Nepravdivé ) ) ; ) else ( $this -> setMessage (JText::_( "COM_USERS_REGISTRATION_SAVE_SUCCESS")); $this -> setRedirect(JRoute::_( "http://www.mywebsite.com/welcome-reg" , Nepravdivé ) ) ; )

Bez ohledu na to, na kterou stránku vašeho webu přesměrujete, systémová zpráva „ Děkujeme vám za registraci...“ se bude stále zobrazovat. Pokud tuto zprávu nechcete, odstraňte celý řádek nad adresou URL přesměrování. např. $this->setMessage(JText::_("COM_USERS_REGISTRATION_SAVE_SUCCESS"));

Pokud nevyžadujete aktivaci účtu (Aktivace nového uživatelského účtu nastavena na Žádný) to je vše, co potřebujete, abyste se vyhnuli stránce profilu uživatele. Pokud však uživatel musí aktivovat účet prostřednictvím e-mailu (Aktivace účtu nastavena na ) to nemusí stačit. Ihned po registraci bude uživatel přesměrován na webovou stránku, kterou jste uvedli v kódu podle očekávání. Když však uživatel klikne na odkaz v aktivačním e-mailu, bude přesměrován na výše uvedený přihlašovací formulář a pokud jej použije k přihlášení, dostane se na stránku Profil uživatele. Abyste tomu zabránili, můžete úplně zakázat stránku s uživatelským profilem a místo toho přesměrovat uživatele na jakoukoli stránku, kterou chcete. Přečtěte si tento článek a zjistěte, jak na to.

Joomla 1.6
Joomla 1.7
Joomla 2.5

Dnes se podíváme na zneužití kritické 1denní zranitelnosti v populárním CMS Joomla, která explodovala na internetu na konci října. Budeme mluvit o zranitelnostech s čísly CVE-2016-8869, CVE-2016-8870 A CVE-2016-9081. Všechny tři pocházejí z jednoho kusu kódu, který dlouhých pět let dřel v hlubinách frameworku a čekal v křídlech, aby se pak osvobodil a přinesl s sebou chaos, hacknuté stránky a slzy nevinných uživatelů této Joomly. Pouze ti nejstatečnější a nejodvážnější vývojáři, jejichž oči jsou červené od světla monitorů a klávesnice poseté drobky chleba, dokázali vyzvat běsnící zlé duchy a položit hlavu na oltář oprav.

VAROVÁNÍ

Veškeré informace jsou poskytovány pouze pro informační účely. Redakce ani autor nenesou odpovědnost za případné škody způsobené materiály tohoto článku.

Kde to všechno začalo

6. října 2016 vytvořil Demis Palma téma na Stack Exchange, ve kterém se zeptal: proč vlastně v Joomle verze 3.6 existují dvě metody pro registraci uživatelů se stejným jménem register()? První je v řadiči UsersControllerRegistration a druhý je v řadiči UsersControllerUser. Damis chtěl vědět, jestli byla někde použita metoda UsersControllerUser::register() nebo jestli to byl jen evoluční anachronismus zbylý ze staré logiky. Jeho obavou bylo, že i když tuto metodu nepoužívá žádný pohled, lze ji volat vytvořeným dotazem. Na což jsem dostal odpověď od vývojáře pod přezdívkou itoctopus, který potvrdil: problém skutečně existuje. A poslal zprávu vývojářům Joomly.

Pak se události vyvíjely nejrychleji. 18. října vývojáři Joomly přijali zprávu od Damise, který v té době vypracoval PoC, který by umožňoval registraci uživatele. Na svých webových stránkách zveřejnil poznámku, kde mluvil obecně o problému, který našel, a svých názorech na tuto záležitost. Ve stejný den je vydána nová verze Joomla 3.6.3, která stále obsahuje zranitelný kód.

Poté Davide Tampellini otočí chybu do bodu, kdy nezaregistruje jednoduchého uživatele, ale správce. A 21. října dorazí k bezpečnostnímu týmu Joomla nový případ. Už se v něm mluví o navýšení privilegií. Ve stejný den se na webu Joomla objevuje oznámení, že v úterý 25. října bude vydána další verze se sériovým číslem 3.6.3, která opravuje kritickou zranitelnost v jádře systému.

25. října Joomla Security Strike Team našel nejnovější problém vytvořený kouskem kódu objeveným Damisem. Poté je do hlavní větve oficiálního úložiště Joomla podstrčen commit z 21. října s nenápadným názvem Prepare 3.6.4 Stable Release, který nešťastnou chybu opravuje.

Poté, co toto vyjde, se do vývojářské komunity připojí řada zainteresovaných jednotlivců – začnou propagovat zranitelnost a připravovat exploity.

27. října výzkumník Harry Roberts nahraje do repozitáře Xiphos Research hotový exploit, který dokáže nahrát soubor PHP na server se zranitelným CMS.

Podrobnosti

Pozadí je u konce, přejděme k nejzajímavější části – analýze zranitelnosti. Nainstaloval jsem Joomlu 3.6.3 jako testovací verzi, takže všechna čísla řádků budou relevantní pro tuto verzi. A všechny cesty k souborům, které uvidíte níže, budou uvedeny vzhledem ke kořenovému adresáři nainstalovaného CMS.

Díky objevu Damise Palmy víme, že existují dvě metody, které provádějí registraci uživatele do systému. První z nich používá CMS a nachází se v souboru /components/com_users/controllers/registration.php:108. Druhý (ten, který budeme muset zavolat) žije v /components/com_users/controllers/user.php:293. Pojďme se na to podívat blíže.

286: /** 287: * Metoda registrace uživatele. 288: * 289: * @return boolean 290: * 291: * @od 1.6 292: */ 293: registr veřejné funkce () 294: ( 295: JSession::checkToken("post") nebo jexit(JText::_ ("JINVALID_TOKEN")); ... 300: // Získání dat formuláře. 301: $data = $this->input->post->get("user", array(), "array"); . .. 315: $return = $model->validate($form, $data); 316: 317: // Kontrola chyb. 318: if ($return === false) 319: ( ... 345: / / Dokončete registraci 346: $return = $model->register($data);

Zde jsem nechal jen zajímavé řádky. Plnou verzi zranitelné metody si můžete prohlédnout v úložišti Joomla.

Pojďme zjistit, co se děje při běžné registraci uživatele: jaké údaje jsou odesílány a jak jsou zpracovávány. Pokud je v nastavení povolena registrace uživatele, formulář najdete na http://joomla.local/index.php/component/users/?view=registration.


Legitimní žádost o registraci uživatele vypadá jako na následujícím snímku obrazovky.


Komponenta com_users je zodpovědná za práci s uživateli. Věnujte pozornost parametru úlohy v požadavku. Má formát $controller.$method . Podívejme se na strukturu souborů.

Názvy skriptů ve složce ovladače odpovídají názvům volaných ovladačů. Protože náš požadavek nyní obsahuje $controller = "registrace" , bude soubor volán registrace.php a jeho metoda register().

Pozor, otázka: jak přenést zpracování registrace na zranitelné místo v kódu? Asi už to tušíte. Názvy zranitelných a skutečných metod jsou stejné (registrovat), takže stačí změnit název volaného řadiče. Kde se nachází náš zranitelný kontrolor? Přesně tak, v souboru user.php. Ukázalo se, že $controller = "user" . Když vše dáme dohromady, dostaneme task = user.register . Nyní je žádost o registraci zpracována metodou, kterou potřebujeme.


Druhá věc, kterou musíme udělat, je odeslat data ve správném formátu. Všechno je zde jednoduché. Legitimate register() od nás očekává pole s názvem jform , do kterého předáme registrační údaje - jméno, přihlašovací jméno, heslo, email (viz snímek obrazovky s požadavkem).

  • /components/com_users/controllers/registration.php: 124: // Získejte uživatelská data. 125: $requestData = $this->input->post->get("jform", array(), "array");

Náš klient získává tato data z pole s názvem user.

  • /components/com_users/controllers/user.php: 301: // Získání dat formuláře. 302: $data = $this->input->post->get("user", array(), "pole");

Proto měníme názvy všech parametrů v požadavku z jfrom na user .

Naším třetím krokem je nalezení platného CSRF tokenu, protože bez něj nebude registrace.

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

Vypadá to jako hash MD5 a můžete si to vzít například z autorizačního formuláře na webu /index.php/component/users/?view=login.


Nyní můžete vytvářet uživatele pomocí požadované metody. Pokud vše klaplo, gratuluji – právě jste zneužili zranitelnost CVE-2016-8870"Chybí kontrola oprávnění pro registraci nových uživatelů."

Takto to vypadá v „pracovní“ metodě register() z řadiče UsersControllerRegistration:

  • /components/com_users/controllers/registration.php: 113: // Pokud je registrace zakázána - Přesměrování na přihlašovací stránku. 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: )

A tak ve zranitelném:

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

Jo, v žádném případě.

Abychom porozuměli druhému, mnohem závažnějšímu problému, odešleme požadavek, který jsme vytvořili, a podívejme se, jak se provádí v různých částech kódu. Zde je část, která je odpovědná za ověření údajů odeslaných uživatelem v metodě pracovníka:

Pokračování je dostupné pouze pro členy

Možnost 1. Připojte se ke komunitě „stránky“ a přečtěte si všechny materiály na stránce

Členství v komunitě ve stanoveném období vám umožní přístup ke VŠEM hackerským materiálům, zvýší vaši osobní kumulativní slevu a umožní vám získat profesionální hodnocení Xakep Score!



Novinka na webu

>

Nejoblíbenější