1С 8.3 Получить сохраненные пароли — Программист 1С Минск. Автоматизация бизнеса.
// Функция позволяет:
// получить пароль системной учетной записи 1С
// учетный данные для обмена 1С с интернет магазином
// внутренний адрес менеджера сервиса
// пароль интернет поддержки пользователей
// и другие учетные жданные 1С
ДанныеСтр = Новый Структура ();
Запрос = Новый Запрос ;
Запрос . Текст =
«ВЫБРАТЬ
| БезопасноеХранилищеДанных.Данные КАК Данные
|ИЗ
| РегистрСведений.БезопасноеХранилищеДанных КАК БезопасноеХранилищеДанных
|ГДЕ
| БезопасноеХранилищеДанных.Владелец = &Владелец» ;
//будет выведен не весь список, а по конкретному владельцу
//Запрос.УстановитьПараметр(«Владелец», Владелец);
РезультатЗапроса = Запрос . Выполнить (). Выбрать ();
Если РезультатЗапроса . Следующий () Тогда
Если ЗначениеЗаполнено ( РезультатЗапроса . Данные ) Тогда
ДанныеИзХранилища = РезультатЗапроса . Данные . Получить ();
Если ЗначениеЗаполнено ( ДанныеИзХранилища ) Тогда
ЗаполнитьЗначенияСвойств ( ДанныеСтр , ДанныеИзХранилища );
КонецЕсли;
КонецЕсли;
КонецЕсли;
Процедура Получить_сохраненные_пароли_БСП ( IDподсистемы ) Экспорт
ОбщегоНазначения . ПрочитатьДанныеИзБезопасногоХранилища ( IDподсистемы , «Пароль» );
Процедура Получить_сохраненные_пароль_и_логин_ИТС () Экспорт
Авторизация = ИнтернетПоддержкаПользователей . ДанныеАутентификацииПользователяИнтернетПоддержки ();
Логин_авторизация = «» ;
Пароль_авторизация = «» ;
Попытка
Для Каждого ЭлементАвторизации Из Авторизация Цикл
Сообщить ( ЭлементАвторизации . Ключ + » Логин» Тогда
Логин_авторизация = ЭлементАвторизации . Значение ;
Сообщить ( «Логин: » + Логин_авторизация );
ИначеЕсли ЭлементАвторизации . Ключ = «Пароль» Тогда
Пароль_авторизация = ЭлементАвторизации . Значение ;
Сообщить ( » Пароль : » + Пароль_авторизация );
КонецЕсли;
КонецЦикла;
Исключение
Сообщить ( «Регистрационные данные ИТС отсутствуют!» );
//Добавить свои данных в хранилище можно так:
//ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ИнтернетПоддержкаПользователей.ИдентификаторПодсистемы(), «Ваш логин от ИТС», «login»);
//ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ИнтернетПоддержкаПользователей.ИдентификаторПодсистемы(), «Ваш Пароль от ИТС», «password»);
Как программно прочитать пароль пользователя ИБ?
Всем привет. Есть задача, вывести на форму поле, в которое пользователь забивает пароль пользователя, если пароль не верен, то ничего не происходит, если введенный пароль верен, то происходит чудо.
Проблема в том, что реквизит пароль у пользователя ИБ недоступен для чтения. Кто подскажет как выйти из положения?
(2) а хз. Ты ж не говришь, какая у тебя задача. Ты рассказываешь, как ты ее решать собрался.
В этой стороне решения нет.
Хочешь подсказок, рассказывай задачу. Не хочешь рассказывать — думай сам
Есть база 1с, в базе, работают под 1 сеансом, и под одним сеансом работает несколько менеджеров.
С утра, когда приходят менеджеры, им надо создать уникальный документ, в котором отражается начало и конец смены.
По задумке, менеджер должен заполнить реквизиты документа, а потом ввести свой пароль. Если пароль пользователя совпадает, то то тогда документ записывается, если не совпадает, тогда се ля ви.
ps вспомнил, есть обработка перенос пользователей ИБ, сейчас посмотрю, они как то там хитрозадо из xml этот пароль перетаскивают.
(14) дай им штрихкод на телефон.
Пришел на работу, показал телефон сканеру, сканер запомнил, когда пришел этот чел на работу. Задача решена без паролей.
Да, будут передавать шриходы друг другу. Но они и пароли так же будут передавать
А штрихкоды можно ночером новые слать
какое хеширование используется в пароле?
HASH / MESSAGE DIGEST АЛГОРИТМЫ
MD5 Hash
SHA1 хэш
SHA256 Хэш
SHA384 Хэш
SHA512 Хэш
RIPE MD160 Hash
Их вона как много
Хешер = Новый ХешированиеДанных(ХэшФункция.SHA256);
Хешер.Добавить("влоарфыдлрдларфыдлвпрыдлпрвыдпы");
(28) (31) (33) (35) есть такой человек — руководитель отдела продаж. У него голова как у лошади — большая. Вот пусть ей и думает.
Мое дело телячье — сделал и сдал. Потом переделал, еще заработал.
Класс, есть типовая функция:
// Возвращает сохраняемое значение пароля для указанного пароля.
//
// Параметры:
// Пароль — Строка — пароль для которого нужно получить сохраняемое значение.
//
// ИдентификаторПользователяИБ — УникальныйИдентификатор — пользователя ИБ для которого нужно
// сравнить сохраняемое значение с полученным и результат поместить
// в следующий параметр Совпадает.
//
// Совпадает — Булево (возвращаемое значение) — см. комментарий к параметру.
// ИдентификаторПользователяИБ.
// Возвращаемое значение:
// Строка — сохраняемое значение пароля.
//
Функция СохраняемоеЗначениеСтрокиПароля(Знач Пароль,
Знач ИдентификаторПользователяИБ = Неопределено,
Совпадает = Ложь) Экспорт
Как получить пароль пользователя 1с программно
ХЕШ пароля в программе Тоод_1СD
Формирование и выполнение запроса к таблице v8users
Получение хеша в окне просмотра данных пользователя
Получение пароля с помощью обработки «Подбор паролей», запущенной в пустой конфигурации 1С
[819] T19a79h10i04r (2021-06-03 15:03:55)
Спасибо большое, очень благодарен. Вы молодцы
[48] RocketSam (2019-02-26 04:41:20)
Очень круто и полезно! Жаль только в приложении к статье другая версия обработки без кнопки «Получить SHA1-хеш».
Получение паролей всех пользователей базы 1С для версий платформ 8.0 и 8.1 (при файловом режиме работы)
Итак, здесь я приведу пошаговую инструкцию – как получить пароли(любой длины!) всех пользователей на платформах 1С 8.0 и 8.1 при файловом режиме работы 1С всего за несколько минут.
Для начала нам понадобится программа PETools (или любые другие программы,позволяющие получить дамп запущенного процесса). А также любая программа для чтения очень больших текстовых файлов с возможностью изменения кодировки (я буду использовать Total Commander).
Теперь краткая инструкция:
1) Запускаем 1С и выбираем в списке нужную нам информационную базу (пароли от которой нам нужно узнать). Пароль пока не вводим. Т.е. на данном этапе мы видим окно:
2) Запускаем PETools (или другую программу для снятия дампа) и делаем дамп процесса 1cv8.exe.
Т.е. нажимаем правую кнопку мыши на данном процессе и выбираем «Dump region…». После чего в появившемся окне вводим «00000000 — 0FFFFFFF» и жмём «DUMP»:
Затем появится окно, в котором выбираем место расположения и имя файла дампа.
3) После того, как появится сообщение об успешном снятии дампа (это произойдёт в течение нескольких секунд), открываем нужную папку и смотрим файл дампа в текстовом редакторе/просмотрщике. Кодировку просмотра выбираемUTF-8.
Повторюсь, я использую Total Commander и сочетание Alt+Shift+F3 (для просмотра файла дампа без установленных плагинов).
4) В появившемся окне (текстового редактора/просмотрщика) ищем имя любого пользователя базы. Данное имя пользователя встретится несколько раз, поэтому ищем до тех пор, пока не увидим пароль данного пользователя (ну и заодно пароли других пользователей базы – они будут рядом):
Пароли других пользователей будут в точно таком же удобном для чтения виде (несколькими строками ниже).
Как следствие: пароль администратора (как и других пользователей) мы смогли получить всего за считанные минуты! При этом, как видно из моего примера, длина пароля и его сложность не играет никакой роли.
ПРИМЕЧАНИЕ:
Хоть я и пишу везде, что это актуально только для платформ 8.0 и 8.1 при файловом режиме работы с базой. Однако, думаю всем ясно, что если пользователю удастся скопировать откуда-нибудь старый архив базы, то он легко сможет загрузить данный архив, например, у себя дома на компьютере через конфигуратор и тем самым переведёт базу в файловый режим работы. Со всеми вытекающими последствиями.
Повторяю, что я написал статью не для того, чтобы кому-то навредить, а для того, чтобы администраторы и пользователи 1С (особенно те, кто работает в файловом режиме) учли данную проблему в безопасности, установили актуальную версию платформы, ну и естественно, сменили потенциально скомпрометированные пароли. Ну и ещё раз напомню — не используйте одни и те же пароли для разных программ (сайтов, сервисов и т.д.), т.к. уязвимость в одной программе может дать доступ злоумышленникам ко всем вашим аккаунтам на других системах.