URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93292
[ Назад ]

Исходное сообщение
"Dovecot авторизация позволяет дописать к паролю что угодно"

Отправлено Nas_tradamus , 24-Апр-12 17:59 
Здравствуйте!

Имеем: Dovecot 2.1.3, авторизацию mysql, пароли в схеме CRYPT и запрос пароля вида:

password_query = SELECT email as user, password FROM users WHERE email = '%n@%d'

Для создания пароля используется mysql-функция ENCRYPT.
-------------

Проблема 1: при авторизации, если дописать к паролю какую-нибудь абракадабру, то авторизация выполняется успешно.

Проблема 2: если пароль 'mysecretcity' изменить на 'mysecretcity495', то авторизация будет и дальше происходить успешно по паролю 'mysecretcity'.
Если изменить пароль на совсем другой '4sdfgwdsfs', то авторизация уже не происходит.

Подскажите кто знает, куда копать?


Содержание

Сообщения в этом обсуждении
"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Nas_tradamus , 24-Апр-12 18:25 
Вот что понял: он считает пароль верным, если совпадают первые 8 символов!

"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено cryo , 24-Апр-12 18:29 
> Вот что понял: он считает пароль верным, если совпадают первые 8 символов!

http://forums.mysql.com/read.php?30,7208,8396


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Andrey Mitrofanov , 24-Апр-12 18:30 
> Вот что понял: он считает пароль верным, если совпадают первые 8 символов!

""The traditional DES-crypt scheme only uses the first 8 characters of the password, the rest are ignored."" - http://wiki.dovecot.org/Authentication/PasswordSchemes


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Nas_tradamus , 24-Апр-12 18:37 
>> Вот что понял: он считает пароль верным, если совпадают первые 8 символов!
> ""The traditional DES-crypt scheme only uses the first 8 characters of the
> password, the rest are ignored."" - http://wiki.dovecot.org/Authentication/PasswordSchemes

Да вот тоже читаю это сейчас и никак не пойму что же мне теперь делать.

У знакомого в Linux с такой же схемой нет таких глюков.

Вот думаю надо этой строкой из вики:

"Dovecot uses libc's crypt() function, which means that CRYPT is usually able to recognize MD5-CRYPT and possibly also other password schemes. Please see the notes below regarding glibc's crypt() and SHA-256/512 support. "


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Andrey Mitrofanov , 24-Апр-12 19:38 
> Да вот тоже читаю это сейчас и никак не пойму что же
> мне теперь делать.

Я на локалхосте ни до чего не додумался :( - положил пароли плейнтекстом.

> Вот думаю надо этой строкой из вики:
> "Dovecot uses libc's crypt() function, which means that CRYPT is usually able
> to recognize MD5-CRYPT and possibly also other password schemes. Please see
> the notes below regarding glibc's crypt() and SHA-256/512 support. "

Посмотреть (как?), что умеет имеющийся на руках libc и его сrypt().

Попробовать хеши паролей, например, в "других" схемах, те что $1$ / $5$ / $6$ / чего там ещё?...

)))
$ echo 'CRYPT MD5 MD5-CRYPT SHA SHA1 SMD5 SSHA PLAIN CLEARTEXT CRAM-MD5 HMAC-MD5 DIGEST-MD5 PLAIN-MD4 PLAIN-MD5 LDAP-MD5 LANMAN NTLM RPA'|xargs -n1 /usr/sbin/dovecotpw -p 1 -u x -s


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Nas_tradamus , 24-Апр-12 20:36 

> Попробовать хеши паролей, например, в "других" схемах, те что $1$ / $5$
> / $6$ / чего там ещё?...
> )))
> $ echo 'CRYPT MD5 MD5-CRYPT SHA SHA1 SMD5 SSHA PLAIN CLEARTEXT CRAM-MD5
> HMAC-MD5 DIGEST-MD5 PLAIN-MD4 PLAIN-MD5 LDAP-MD5 LANMAN NTLM RPA'|xargs -n1 /usr/sbin/dovecotpw
> -p 1 -u x -s

Но у меня уже в базе существует >300 юзеров в CRYPT.


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Andrey Mitrofanov , 25-Апр-12 09:50 
> Но у меня уже в базе существует >300 юзеров в CRYPT.

Во http://wiki2.dovecot.org/HowTo/ConvertPasswordSchemes , шайтан-арба!

Добавляет к старому CRYPY хэшу новый SSHA256 шпионскимВ)) скриптом прямо _во _время логина пользователя, внутри pop3 сервера.

При этом оно "едет" и на _"перемешанных"_ хешах: старые лежат с префиксом {CRYPT}, новые - уже с {SSHA256.hex}.


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Andrey Mitrofanov , 25-Апр-12 09:54 
> Добавляет к старому CRYPY хэшу новый SSHA256

_Заменяет старый новым, точнее.

ЗЫ:
- $ echo 'CRYPT MD5 MD5-CRYPT SHA SHA1 SMD5 SSHA PLAIN CLEARTEXT CRAM-MD5 HMAC-MD5 DIGEST-MD5 PLAIN-MD4 PLAIN-MD5 LDAP-MD5 LANMAN NTLM RPA'|xargs ...
+ $ /usr/sbin/dovecotpw -l |xargs ...

Надо было man почитать ещё немного, предже чем копипастить %)ашлело.


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Nas_tradamus , 25-Апр-12 10:58 
> ...
> + $ /usr/sbin/dovecotpw -l |xargs ...
> Надо было man почитать ещё немного, предже чем копипастить %)ашлело.

А у меня нет dovecotpw. :(

find /usr -type f -name 'dovecotpw'

...и ничего


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Nas_tradamus , 25-Апр-12 10:51 
>> Но у меня уже в базе существует >300 юзеров в CRYPT.
> Во http://wiki2.dovecot.org/HowTo/ConvertPasswordSchemes , шайтан-арба!

Оо! Спасибо) Проглядел в вики эту страничку )


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Nas_tradamus , 25-Апр-12 11:32 
Я так понимаю, этим способом из вики можно сконвертить все пароли в md5, а потом юзать md5 при создания пароля через SQL-функцию... А то что-то я не нашел другого типа шифрования, чтобы и Dovecot и MySQL 5.1 поддерживали из коробки.

"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Andrey Mitrofanov , 25-Апр-12 13:18 
> то что-то я не нашел другого типа шифрования, чтобы и Dovecot
> и MySQL 5.1 поддерживали из коробки.

А зачем тебе поддержка именно в mysql? Хранит себе _строку и хранит.

Давкот хеши по {ИМЕНАМ} схемы понимает/различает.

Так что единственная проблема - тот, кто _добавляет/изменяет пароли пользователей в базе.

Postfixadmin, например, умеет всяние схемы, в т.ч. все, что умеет dovecotpw, явно (через него и пропускает, видимо).


"Dovecot авторизация позволяет дописать к паролю что угодно"
Отправлено Nas_tradamus , 25-Апр-12 13:28 
>> то что-то я не нашел другого типа шифрования, чтобы и Dovecot
>> и MySQL 5.1 поддерживали из коробки.
> А зачем тебе поддержка именно в mysql? Хранит себе _строку и хранит.
> Давкот хеши по {ИМЕНАМ} схемы понимает/различает.
> Так что единственная проблема - тот, кто _добавляет/изменяет пароли пользователей в базе.
> Postfixadmin, например, умеет всяние схемы, в т.ч. все, что умеет dovecotpw, явно
> (через него и пропускает, видимо).

Дело в том, что юзеры добавляются через phpmyadmin - там просто выбираешь функцию ENCRYPT и не надо ничего шаманить.
Нужно чтобы и эникейщики могли справиться с генерацией пароля :)