Rumah Pencegahan Perisian universal untuk salun optik, klinik oftalmologi, bilik pembetulan hubungan. Perisian universal untuk salun optik, klinik oftalmologi, bilik pembetulan hubungan Sambungan tersedia t

Perisian universal untuk salun optik, klinik oftalmologi, bilik pembetulan hubungan. Perisian universal untuk salun optik, klinik oftalmologi, bilik pembetulan hubungan Sambungan tersedia t

Perisian universal yang direka khusus untuk salun optik, klinik oftalmologi, pejabat QC dan pakar oftalmologi.
Tahap kerja baharu secara kualitatif untuk salun optik dan pakar mata.

Program komputer "ARMO plus"

(Perakaunan dan perdagangan perubatan)

  • Fail pelanggan bersatu di semua tempat kerja dan cawangan.
  • Sistem diskaun yang fleksibel, bekerja dengan kad diskaun.
  • Menyelenggara dan mengambil kira jualan borong dan runcit, perkhidmatan untuk pengeluaran dan pembaikan cermin mata, perkhidmatan perubatan.
  • Masukkan dan cari maklumat dengan cepat mengikut nama, menggunakan kod, melalui pengimbas kod bar.
  • Pengoptimuman permintaan untuk pembekalan barangan menggunakan templat. Meminimumkan inventori.
  • Kemasukan automatik data pemeriksaan perubatan dan penjanaan nota perubatan.
  • Mengeluarkan preskripsi dan mengautomasikan pembentukan pesanan untuk cermin mata. Perakaunan untuk perkhidmatan doktor dan sarjana.
  • Penghantaran maklumat operasi yang disasarkan menggunakan mesej SMS untuk menjemput pelanggan ke temu janji perundingan atau penggantian kanta berjadual; memaklumkan tentang saham syarikat.
  • Ringkasan dan laporan terperinci tentang pergerakan tunai dan barangan, aliran pelanggan, kerja kakitangan, keputusan kewangan.
  • Kemungkinan memuat turun data untuk kegunaan seterusnya dalam 1C: Perakaunan, kedai dalam talian dan program lain.
  • Memantau aktiviti individu pekerja (jualan, rujukan untuk peperiksaan, memberikan diskaun kepada pelanggan, dsb.).
  • Mengkonfigurasi akses pengguna kepada fungsi program.
  • Pertukaran data automatik antara stesen kerja jauh (cawangan).
  • Tahap perlindungan yang tinggi terhadap akses tanpa kebenaran dan penyalinan maklumat. Pengarkiban pangkalan data automatik.

"ARMO plus" ialah sistem yang menggunakan teknologi pangkalan data teragih

Direka untuk automasi:

Menjalankan jualan borong dan runcit;

Permohonan untuk pembekalan barang, kawalan pergerakan barang dan baki barang di tempat kerja;

Mengekalkan fail pelanggan elektronik dengan data daripada pemeriksaan oftalmologi, diari pemeriksaan perundingan, mengeluarkan preskripsi dan pesanan untuk cermin mata;

Pembentukan dan pencetakan data pemeriksaan perubatan;

Menjana laporan tentang pergerakan tunai dan barangan, aliran pelanggan dan hasil tinjauan mereka.

Untuk mengatur operasi yang boleh dipercayai dan selamat, program ini menyediakan pembahagian kepada peranan yang menentukan hak pengguna dan akses mereka kepada maklumat. Teknologi pangkalan data yang diedarkan membolehkan anda menjalankan pengendalian rangkaian kedai optik dan pejabat oftalmologi.

Direktori dan Dokumen

Untuk menyimpan dan menyusun data, isi dokumen, laporan, fail pesakit, dsb. disediakan buku rujukan. Direktori mempunyai antara muka mesra pengguna dan bekerja dengannya adalah intuitif Dengan bantuan dokumen maklumat tentang perniagaan dan transaksi kewangan dimasukkan, permintaan untuk barangan dibuat, baki dimasukkan Akses kepada direktori dan dokumen ditentukan oleh pentadbir program,memberikan "hak" khusus kepada pengguna

Kemungkinan pelaksanaan serentak pelbagai operasi

Fail pelanggan

Peranan istimewa dalam ARMO Plus diberikan untuk mengekalkanfail pelanggan elektronik. Fail pelanggan bersatu mengandungi maklumat tentang data primer, anamnesis, diagnosis, lawatan, diari pemeriksaan dan pemeriksaan oftalmologi, preskripsi, pesanan cermin mata, data mengenai pembelian, permohonan dan pendahuluan pelanggan. Program ini menjana laporan mengenai jualan, pesanan dan permintaan daripada pelanggan, dan ekstrak daripada pemeriksaan oftalmologi. Skim diskaun fleksibel disediakan untuk pelanggan. Terdapat sistem pemberitahuan melalui SMS dan mesej e-mel.


Laporan asas dalam ARMO Plus

  • ringkasan dan laporan terperinci tentang pendapatan, perbelanjaan, baki, pusing ganti
  • laporan hasil
  • laporan awal mengenai dokumen dan fail
  • laporan mengenai kawalan harga boleh guna
  • laporan mengenai permohonan dan tempahan cermin mata
  • laporan jangka hayat
  • laporan dokumen
  • laporan mengenai pelanggan, lawatan yang dijangkakan, sumber pelanggan
  • laporan diskaun pelanggan
  • ringkasan dan laporan terperinci tentang kakitangan

Selain fungsi perakaunan dan analisis, laporan digunakan untuk memantau kerja kakitangan, jualan dan aliran pelanggan.

Pangkalan data teragih dan pertukaran data

Teknologi pangkalan data yang diedarkan membolehkan kerja pakar optik jauh secara geografi, pejabat oftalmologi dan cawangan. Maklumat dihantar antara satu sama lain melalui paket pertukaran elektronik. Disebabkan ini, penyegerakan data dicapai di stesen kerja jauh. Ini adalah bagaimana ia terbentuk fail pesakit bersatu dan pangkalan data rujukan dan maklumat dokumentari Firma yang bekerja dengan ARMO Plus boleh bertukar-tukar data antara satu sama lain secara elektronik.


Perkhidmatan pentadbiran pangkalan data

Kebolehpercayaan operasi dipastikan dengan cara pemuliharaan Pangkalan data Data yang disimpan sentiasa boleh memulihkan. Untuk memampatkan pangkalan data, pemunggahan data dan pembersihan disediakan. ARMO plus boleh muat naik data ke program 1C:Enterprise, Excel, kedai dalam talian.

Dalam Joomla, selepas pendaftaran berjaya, pengguna secara lalai dialihkan ke a halaman log masuk(jika akaun tidak perlu diaktifkan). Dari sana (selepas log masuk) pengguna dialihkan ke profil pengguna muka surat. Ini berlaku walaupun anda telah menetapkan Ubah Arah Log Masuk kepada sesuatu yang lain Modul Borang Log Masuk.

Untuk mengubah tingkah laku ini, anda boleh mengubah hala pengguna selepas pendaftaran ke mana-mana halaman lain di tapak web anda.
Untuk melakukan ini, anda perlu mengedit fail Joomla teras. Harap maklum bahawa perubahan anda mungkin ditimpa oleh kemas kini Joomla. Sentiasa dokumenkan perubahan yang anda buat pada fail Joomla teras supaya anda boleh melakukannya semula dengan cepat jika perlu.

Buka fail:
komponen/com_users/controllers/registration.php

Tatal ke bawah ke bahagian paling bawah. Baris permulaan 162 atau lebih anda akan mempunyai kod mengalir:

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

Dalam bahagian ini anda mempunyai 3 pautan bermula index.php?

  • Yang pertama () dilaksanakan selepas pendaftaran pengguna jika akaun perlu diaktifkan oleh pentadbir
  • Kedua( index.php?option=com_users&view=registration&layout=complete), jika akaun perlu diaktifkan oleh pengguna
  • ketiga ( index.php?option=com_users&view=login), jika pengaktifan akaun tidak diperlukan.

Gantikan pautan bergantung pada jenis pendaftaran yang anda gunakan dengan URL PENUH halaman ubah hala anda dan anda telah selesai.
Contohnya, jika pengaktifan pengguna di tapak web saya tidak diperlukan dan saya ingin mengubah hala pengguna selepas pendaftaran ke http://www.mywebsite.com/welcome-reg kod yang dikemas kini ialah:

// Ubah hala ke skrin profil. if ($return === "adminactivate") ( $this -> setMessage (JText::_( "COM_USERS_REGISTRATION_COMPLETE_VERIFY")); $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", salah ) ) ; ) else if ($return === "useractivate") ( $this -> setMessage (JText::_( "COM_USERS_REGISTRATION_COMPLETE_ACTIVATE")); $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", salah ) ) ; ) lain ( $this -> setMessage (JText::_( "COM_USERS_REGISTRATION_SAVE_SUCCESS")); $this -> setRedirect(JRoute::_( "http://www.mywebsite.com/welcome-reg" , salah ) ) ; )

Tidak kira ke halaman mana di tapak web anda anda ubah hala, mesej sistem " Terima Kasih kerana mendaftar..." akan tetap dipaparkan. Jika anda tidak mahu mesej ini, alih keluar baris penuh di atas URL ubah hala anda. cth. $this->setMessage(JText::_("COM_USERS_REGISTRATION_SAVE_SUCCESS"));

Jika anda tidak memerlukan pengaktifan akaun (Pengaktifan Akaun Pengguna Baharu ditetapkan kepada tiada) ini sahaja yang anda perlukan untuk mengelakkan halaman Profil Pengguna. Walau bagaimanapun, jika pengguna perlu mengaktifkan akaun melalui e-mel (Account Activation set to Diri sendiri) ini mungkin tidak mencukupi. Sejurus selepas pendaftaran pengguna akan dialihkan ke halaman web yang anda berikan dalam kod seperti yang diharapkan. Walau bagaimanapun, apabila pengguna mengklik pada pautan dalam e-mel pengaktifan, mereka akan dibawa ke borang log masuk yang dinyatakan sebelum ini dan jika mereka menggunakannya untuk log masuk, mereka akan sampai ke halaman Profil Pengguna. Untuk mengelakkan ini, anda boleh melumpuhkan halaman Profil Pengguna sepenuhnya dan sebaliknya mengubah hala pengguna ke mana-mana halaman yang anda suka. Baca artikel ini untuk mengetahui caranya.

Joomla 1.6
Joomla 1.7
Joomla 2.5

Hari ini kita akan melihat eksploitasi kerentanan 1 hari yang kritikal dalam CMS Joomla yang popular, yang meletup di Internet pada akhir Oktober. Kami akan bercakap tentang kelemahan dengan nombor CVE-2016-8869, CVE-2016-8870 Dan CVE-2016-9081. Ketiga-tiganya datang dari satu kod yang merana di kedalaman rangka kerja selama lima tahun yang panjang, menunggu di sayap, hanya untuk kemudian membebaskan diri dan membawa bersamanya huru-hara, tapak yang digodam dan air mata pengguna yang tidak bersalah Joomla ini. Hanya pemaju yang paling berani dan berani, yang matanya merah akibat cahaya monitor, dan papan kekuncinya dipenuhi serbuk roti, dapat mencabar roh jahat yang mengamuk dan meletakkan kepala mereka di atas mezbah pembaikan.

AMARAN

Semua maklumat disediakan untuk tujuan maklumat sahaja. Baik editor mahupun pengarang tidak bertanggungjawab terhadap sebarang kemungkinan bahaya yang disebabkan oleh bahan artikel ini.

Di mana semuanya bermula

Pada 6 Oktober 2016, Demis Palma mencipta topik di Stack Exchange di mana dia bertanya: kenapa, sebenarnya, dalam Joomla versi 3.6 terdapat dua kaedah untuk mendaftar pengguna dengan nama yang sama register()? Yang pertama adalah dalam pengawal UsersControllerRegistration dan yang kedua adalah dalam pengawal UsersControllerUser. Damis ingin tahu sama ada kaedah UsersControllerUser::register() telah digunakan di suatu tempat, atau jika ia hanyalah anakronisme evolusi yang tinggal daripada logik lama. Kebimbangannya ialah walaupun kaedah ini tidak digunakan oleh mana-mana pandangan, ia boleh dipanggil dengan pertanyaan yang dibuat. Yang mana saya menerima respons daripada pembangun dengan nama samaran itoctopus, yang mengesahkan: masalah itu benar-benar wujud. Dan menghantar laporan kepada pembangun Joomla.

Kemudian peristiwa berkembang paling pesat. Pada 18 Oktober, pembangun Joomla menerima laporan daripada Damis, yang pada masa itu telah merangka PoC yang membenarkan pendaftaran pengguna. Dia menerbitkan nota di laman webnya, di mana dia bercakap secara umum tentang masalah yang ditemuinya dan pemikirannya mengenai perkara ini. Pada hari yang sama, versi baharu Joomla 3.6.3 dikeluarkan, yang masih mengandungi kod terdedah.

Selepas ini, Davide Tampellini memutar pepijat ke tahap mendaftar bukan pengguna mudah, tetapi pentadbir. Dan pada 21 Oktober, satu kes baharu tiba kepada pasukan keselamatan Joomla. Ia sudah bercakap tentang peningkatan keistimewaan. Pada hari yang sama, pengumuman muncul di laman web Joomla bahawa pada hari Selasa, 25 Oktober, versi seterusnya dengan nombor siri 3.6.3 akan dikeluarkan, yang membetulkan kelemahan kritikal dalam kernel sistem.

25 Oktober Pasukan Strike Keselamatan Joomla menemui masalah terbaharu yang dicipta oleh sekeping kod yang ditemui oleh Damis. Kemudian komit bertarikh 21 Oktober dengan nama yang tidak mencolok Prepare 3.6.4 Stable Release ditolak ke dalam cawangan utama repositori Joomla rasmi, yang membetulkan pepijat malang itu.

Selepas ini keluar, ramai individu yang berminat menyertai komuniti pembangun - mereka mula mempromosikan kelemahan dan menyediakan eksploitasi.

Pada 27 Oktober, penyelidik Harry Roberts memuat naik eksploitasi siap sedia ke repositori Penyelidikan Xiphos yang boleh memuat naik fail PHP ke pelayan dengan CMS yang terdedah.

Butiran

Nah, latar belakang sudah berakhir, mari kita beralih ke bahagian yang paling menarik - analisis kelemahan. Saya memasang Joomla 3.6.3 sebagai versi ujian, jadi semua nombor baris akan relevan untuk versi ini. Dan semua laluan ke fail yang anda akan lihat di bawah akan ditunjukkan secara relatif kepada akar CMS yang dipasang.

Terima kasih kepada penemuan Damis Palma, kami tahu bahawa terdapat dua kaedah yang melaksanakan pendaftaran pengguna dalam sistem. Yang pertama digunakan oleh CMS dan terletak dalam fail /components/com_users/controllers/registration.php:108. Yang kedua (yang perlu kita panggil) tinggal di /components/com_users/controllers/user.php:293. Mari kita lihat dengan lebih dekat.

286: /** 287: * Kaedah untuk mendaftar pengguna. 288: * 289: * @kembali boolean 290: * 291: * @sejak 1.6 292: */ 293: daftar fungsi awam() 294: ( 295: JSession::checkToken("post") atau jexit(JText::_ ("JINVALID_TOKEN")); ... 300: // Dapatkan data borang. 301: $data = $this->input->post->get("user", array(), "array"); . .. 315: $return = $model->validate($form, $data); 316: 317: // Semak ralat. 318: if ($return === false) 319: ( ... 345: / / Selesaikan pendaftaran 346: $return = $model->register($data);

Di sini saya meninggalkan hanya baris yang menarik. Versi penuh kaedah terdedah boleh dilihat dalam repositori Joomla.

Mari kita fikirkan apa yang berlaku semasa pendaftaran pengguna biasa: data apa yang dihantar dan bagaimana ia diproses. Jika pendaftaran pengguna didayakan dalam tetapan, borang boleh didapati di http://joomla.local/index.php/component/users/?view=registration.


Permintaan pendaftaran pengguna yang sah kelihatan seperti tangkapan skrin berikut.


Komponen com_users bertanggungjawab untuk bekerja dengan pengguna. Beri perhatian kepada parameter tugas dalam permintaan. Ia mempunyai format $controller.$method . Mari lihat struktur fail.

Nama skrip dalam folder pengawal sepadan dengan nama pengawal yang dipanggil. Memandangkan permintaan kami kini mengandungi $controller = "registration" , fail akan dipanggil pendaftaran.php dan kaedah daftar()nya.

Perhatian, soalan: bagaimana untuk memindahkan pemprosesan pendaftaran ke tempat yang terdedah dalam kod? Anda mungkin sudah menekanya. Nama kaedah yang terdedah dan sebenar adalah sama (daftar), jadi kita hanya perlu menukar nama pengawal yang dipanggil. Di manakah terletaknya pengawal mudah terjejas kami? Betul, dalam fail pengguna.php. Ternyata $controller = "user" . Menggabungkan segala-galanya kita mendapat tugas = user.register . Sekarang permintaan pendaftaran diproses mengikut kaedah yang kami perlukan.


Perkara kedua yang perlu kita lakukan ialah menghantar data dalam format yang betul. Semuanya mudah di sini. Daftar sah() mengharapkan daripada kami tatasusunan yang dipanggil jform , di mana kami menghantar data pendaftaran - nama, log masuk, kata laluan, e-mel (lihat tangkapan skrin dengan permintaan).

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

Pelanggan kami mendapat data ini daripada tatasusunan yang dipanggil pengguna.

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

Oleh itu, kami menukar nama semua parameter dalam permintaan daripada jfrom kepada pengguna .

Langkah ketiga kami ialah mencari token CSRF yang sah, kerana tanpanya tidak akan ada pendaftaran.

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

Ia kelihatan seperti cincangan MD5, dan anda boleh mengambilnya, sebagai contoh, daripada borang kebenaran di tapak /index.php/component/users/?view=login.


Kini anda boleh membuat pengguna menggunakan kaedah yang dikehendaki. Jika semuanya berjaya, maka tahniah - anda hanya mengeksploitasi kelemahan CVE-2016-8870"Semakan kebenaran tiada untuk mendaftarkan pengguna baharu."

Inilah yang kelihatan dalam kaedah daftar() "berfungsi" daripada pengawal UsersControllerRegistration:

  • /components/com_users/controllers/registration.php: 113: // Jika pendaftaran dilumpuhkan - Ubah hala ke halaman log masuk. 114: if (JComponentHelper::getParams("com_users")->get("allowUserRegistration") == 0) 115: ( 116: $this->setRedirect(JRoute::_("index.php?option=com_users&view=) log masuk", palsu)); 117: 118: kembali palsu; 119: )

Dan sebagainya dalam terdedah:

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

Ya, tidak mungkin.

Untuk memahami masalah kedua yang lebih serius, mari hantar permintaan yang kami buat dan lihat bagaimana ia dilaksanakan dalam pelbagai bahagian kod. Berikut ialah bahagian yang bertanggungjawab untuk mengesahkan data yang diserahkan oleh pengguna dalam kaedah pekerja:

Kesinambungan hanya tersedia untuk ahli

Pilihan 1. Sertai komuniti "tapak" untuk membaca semua bahan di tapak

Keahlian dalam komuniti dalam tempoh yang ditetapkan akan memberi anda akses kepada SEMUA bahan Penggodam, meningkatkan diskaun terkumpul peribadi anda dan membolehkan anda mengumpul penarafan Skor Xakep profesional!



Baru di tapak

>

Paling popular