Vulnhub-DIGITALWORLD.LOCAL: SNAKEOIL

一、概要

靶机地址:192.168.56.107

攻击机地址:192.168.56.101

靶机下载地址:https://download.vulnhub.com/digitalworld/SNAKEOIL.7z

二、主机发现

sudo arp-scan -l

目标靶机地址为192.168.56.107

三、信息收集

sudo nmap -sS -A -T4 -p- 192.168.56.107

开放了22、80和8080三个端口 

四、渗透测试

1)JWT配置信息

80端口是个初始界面,目测没有什么有用的东西

8080端口的Useful Links给了一个链接

Configuration Options — flask-jwt-extended 4.4.4 documentation

这是一个flask和jwt的配置信息 

2)目录扫描 

 扫一手目录

gobuster dir -u "http://192.168.56.107:8080/" -w /usr/share/wordlists/dirb/common.txt

3)页面信息

逐个页面看一下

1)/login页面

 均修改后显示用户不存在,明显我们需要先注册一个用户

2)/registration页面 

修改为POST方法后,显示需要username

修改后显示用户创建成功并返回了access_token

回到/login页面登录后返回了access_token和refresh_token

/run页面 

 

修改传输方法为POST,content-type和表单内容后显示需要secret key,先不管

/secret页面 

 

/test页面 

 

/users页面 

test和users界面都没有什么有价值的信息

4)secret key

secret key应该就是在secret页面

HTTP500应该是响应包里面缺了什么

查看规则发现在Cookie中需要access_token_cookie这个参数,而我们前面也获得这个了

 

 请求成功,获得到secret key

返回正常了

 查看一下这个开头发现是curl执行的统计信息

5)命令注入

尝试一下命令注入,可以实现

先查看一下当前路径下的文件

获取一下app.py的内容,查看过滤信息

过滤了很多内容,常用的反弹shell是行不通了

6)反弹shell

在本地创建反弹shell脚本并使用wget下载到靶机上

 

单纯的上传还不行,有点小问题,shell.sh里面的内容是执行的日志,需要把shell.sh删除,把shell.sh.1重命名为shell.sh,然后再给shell.sh加权限:chmod 777 shell.sh

加完权限后,本地开启监听然后直接./shell.sh即可

 拿到shell

7)root权限

sudo -l查看,发现可以root权限执行任意命令,但是需要密码

在app.py中有两个可疑的密码

使用下面这个可以成功登录

直接拿到root权限

 

结束

 

五、总结

1、靶机给出的配置相关信息,有时藏着重要思路

2、发包放包记得仔细观察HTTP响应

3、命令注入除了可以直接使用命令反弹shell,还可以使用wget上传文件进行shell的获取

4、仔细查看已有的信息,尤其那些存在配置信息的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值