青菜

注册

 

发新话题 回复该主题

PostgreSQL用pgdump [复制链接]

1#
是不是可以破解密码呢?

今日突然想到pg_filedump是不是也能破解密码?要想破解密码,先要了解一下pg_authid表。

postgres=#SELECTrolname,rolpasswordFROMpg_authid;rolname

rolpassword---------------------------+-------------------------------------pg_monitor

pg_read_all_settings

pg_read_all_stats

pg_stat_scan_tables

pg_read_server_files

pg_write_server_files

pg_execute_server_program

pg_signal_backend

postgres

mdaaa05cda6ba25fcaaa3b5test

mddbabeaa66b2

目前我的环境使用的是md5加密。

先从源代码中找出要挖掘的文件号。

此处显示挖掘文件。文件比较特殊,它不在任何数据库下,而是在global文件夹下,因此需要指定路径为global/

[postgres

centos8pgdata]$pg_filedump-Doid,name,bool,bool,bool,bool,bool,bool,bool,int,text,~./global/

grepCOPY:COPY:10postgresttttttt-1\N\NCOPY:pg_monitorftfffff-1\N\NCOPY:pg_read_all_settingsftfffff-1\N\NCOPY:pg_read_all_statsftfffff-1\N\NCOPY:pg_stat_scan_tablesftfffff-1\N\NCOPY:pg_read_server_filesftfffff-1\N\NCOPY:pg_write_server_filesftfffff-1\N\NCOPY:pg_execute_server_programftfffff-1\N\NCOPY:pg_signal_backendftfffff-1\N\NCOPY:10postgresttttttt-1mdaaa05cda6ba25fcaaa3b5\NCOPY:testttfftff-1\N\NCOPY:testttfftff-1mddbabeaa66b2\N

不久我们就挖出了加密密码。但加密后的密码无法登录到数据库。

[postgres

centos8~]$psql-h..56.-Upostgres-dpostgres-WPassword:-02-:32:11.UTC[]FATAL:passwordauthenticationfailedforuser"postgres"-02-:32:11.UTC[]DETAILassworddoesnotmatchforuser"postgres".Connectionmatchedpg_hba.confline91:"hostallall0.0.0.0/0md5"psql:error:FATAL:passwordauthenticationfailedforuser"postgres"

PostgreSQL的密码不是对密码值进行默认散列,而是使用(密码+Slat)来散列。test用户密码是Sqlite,让我们来计算它。

[postgres

centos8pgdata]$echo-n"Sqlite"

md5sumafcd6ce5eec8fef1c54b-

我们会发现,计算出的md5值与挖掘出的md5值不同。添加slat值后再来测试一下。

[postgres

centos8pgdata]$echo-n"Sqlitetest"

md5sum81dbabeaa66b2-

可以看到这次和我们挖掘的密码值一样了。所以PostgreSQL的slat其实就是用户名。我的postgres的密码也是Sqlite,加上Slat可以看到和我们挖掘的数据一致。

[postgres

centos8pgdata]$echo-n"Sqlitepostgres"

md5sum95aaa05cda6ba25fcaaa3b5-

既然我们知道加密的md5值,要反推明文的密码,实际上是很困难的,尤其是加了slat之后。

为什么用slat破解比较困难,因为每个用户都有自己的用户名,然后每个用户的H函数(H函数就是要破解的哈希函数)就不一样了。您必须为每一位用户生成不同的彩虹表。因此解码非常困难。

但您可以想象,超级管理员的slat总是postgres,因此仍然有可能被破解。在网络上,我们发现了一种破解的网站,尝试未能成功。

但是我在stackoverflow.

分享 转发
TOP
发新话题 回复该主题