From: | Thom Brown <thom(at)linux(dot)com> |
---|---|
To: | Josh Kupershmidt <schmiddy(at)gmail(dot)com> |
Cc: | Machiel Richards <machielr(at)rdc(dot)co(dot)za>, "pgsql-novice(at)postgresql(dot)org" <pgsql-novice(at)postgresql(dot)org> |
Subject: | Re: Postgresql security checks |
Date: | 2010-09-01 15:32:40 |
Message-ID: | AANLkTi=aTgKwwjGVgjxz1jW=c+vNU16MfnX5LNiYhe+n@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
On 1 September 2010 16:17, Josh Kupershmidt <schmiddy(at)gmail(dot)com> wrote:
> On Wed, Sep 1, 2010 at 5:02 AM, Thom Brown <thom(at)linux(dot)com> wrote:
>
>> SELECT usename
>> FROM pg_shadow
>> WHERE passwd = 'md5' || md5(usename)
>> OR passwd = 'md5' || md5('company_password');
>
> I think this query should be:
>
> SELECT usename
> FROM pg_shadow
> WHERE passwd = 'md5' || md5(usename || usename) OR
> passwd = 'md5' || md5('company_password' || usename);
>
> Since the md5 passwords in pg_shadow (and pg_authid) are created as:
> MD5(password || username)
>
> By the way, the documentation pages for pg_authid and pg_shadow don't
> mention that md5 passwords are stored in this fashion, perhaps they
> should? Or is this fact documented somewhere else I'm not seeing?
Yes, I had discovered this previously but obviously I've got a memory
leak. Actually, doesn't this apply to roles too?
SELECT rolname
FROM pg_authid
WHERE rolpassword = 'md5' || md5(rolname || rolname) OR
rolpassword = 'md5' || md5('company_password' || rolname);
--
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Kupershmidt | 2010-09-01 15:49:38 | Re: Postgresql security checks |
Previous Message | Josh Kupershmidt | 2010-09-01 15:17:39 | Re: Postgresql security checks |