Vulnhub 靶场 DIGITALWORLD.LOCAL: SNAKEOIL

Vulnhub 靶场 DIGITALWORLD.LOCAL: SNAKEOIL

前期准备

靶机地址:https://www.vulnhub.com/entry/digitalworldlocal-snakeoil,738/
kali攻击机ip:192.168.147.190
靶机ip:192.168.147.200

一、信息收集

1.nmap扫描
image
开启22、80、8080端口。
2.80端口
image
看不出来什么,直接扫描目录。
image
还是啥也没。
3.8080端口
image
发现useful links有个网址。
image
是一些配置信息,,扫一下目录。
image
发现一些新目录,访问一下看看
image
users页面发现用户名和加密过的密码。
/registration 页面下:
image
提示错误的方法。
抓包换下请求方法试试。
image
修改完之后重新发包。
image
说 username 字段不能为空,那就加上 username 字段再发一遍。
image
又提示 password 字段不能为空,再加上 password 字段发一遍。
image
提示注册成功了,那就在 /login 页面登陆一下,要加上用户名和密码:
image
再访问一些别的页面(现在是在登陆状态中):
/create 页面:
image
无法了解请求,大概是传入什么东西。

/run 页面:
image
说要以 url:port 形式提供要请求的 URL:
image
记得格式要换成 Content-Type: application/json, 在ajax中,如果没加contentType:"application/json",那么data就对应的是json对象;反之,如果加了contentType:"application/json",那么ajax发送的就是字符串。
现在又说需要 secret key ,访问一下 /secret 页面:
image
POST 方式不行,再换成 GET :
image
还是不行,那就再加上之前返回的 cookie:
image
发现还是不行,想起来之前发现过一些配置信息,从中找到了 cookie 的名称:
image
再次提交 cookie:
image
得到 "secret_key": "commandexecutionissecret",再在 /run 里面提交:
image
得到了返回信息,像是系统的进程信息,尝试一些别的指令:
image
发现可以注入,尝试往其中写入 shell:
image
发现不行,找了找python,nc等都不行,那试试能不能上传个 .ssh 私钥文件然后 ssh 登录。

二、制作ssh私钥登录

制作ssh私钥并复制到桌面,开启http服务。
image
访问下载。
image
查看有无上传成功。
image
时间上没问题,上传成功了,把 authorized_keys 文件移到 /home/patrick/.ssh/ 目录下:
image
查看一下 .ssh 目录下有没有:
image
没问题,那就直接 ssh 登录:
image
发现可以以 root 身份执行任意命令
image
不过需要 patrick 的密码,找找系统中的文件,看有没有线索,最后在 ~/flask_blog/app.py 文件中找到了:
image
切换成root用户。
image

posted on 2022-05-09 17:26  水果味儿  阅读(89)  评论(0编辑  收藏  举报