Vulnhub 靶场 DIGITALWORLD.LOCAL: SNAKEOIL
前期准备:
靶机地址:https://www.vulnhub.com/entry/digitalworldlocal-snakeoil,738/
kali攻击机ip:192.168.11.129
靶机ip:192.168.11.192
一、信息收集
1.使用nmap对目标靶机进行扫描
发现开放了 22、80和8080端口。
2. 80端口
没发现什么,扫一下目录:
什么也没有。
3. 8080端口
查看一下网站内的信息,发现在 Useful Links 里有个网址:
是一些配置信息,,扫一下目录:
发现了一些新的页面,查看一下:
/users 页面下:
发现用户名和加密过的密码。
/registration 页面下:
说请求方法错了,抓包改下请求方式:
说 username 字段不能为空,那就加上 username 字段:
又提示 password 字段不能为空,再加上 password 字段:
说注册成功了,那就在 /login 页面登陆一下,要加上用户名和密码:
再访问一些别的页面(现在是在登陆状态中):
/create 页面:
无法了解请求,大概是传入什么东西。
/run 页面:
说要以 url:port 形式提供要请求的 URL:
记得格式要换成 Content-Type: application/json, 在ajax中,如果没加contentType:"application/json",那么data就对应的是json对象;反之,如果加了contentType:"application/json",那么ajax发送的就是字符串。
现在又说需要 secret key ,访问一下 /secret 页面:
POST 方式不行,再换成 GET :
还是不行,那就再加上之前返回的 cookie:
发现还是不行,想起来之前发现过一些配置信息,从中找到了 cookie 的名称:
再次提交 cookie:
得到 "secret_key": "commandexecutionissecret",再在 /run 里面提交:
得到了返回信息,像是系统的进程信息,尝试一些别的指令:
发现可以注入,尝试往其中写入 shell:
发现不行,找了找python,nc等都不行,那试试能不能上传个 .ssh 私钥文件然后 ssh 登录。
二、制作ssh私钥登录
首先先制作 ssh 私钥:
开启 http 服务,把私钥文件传到靶机上:
查看一下有没有上传成功:
时间上没问题,上传成功了,把 authorized_keys 文件移到 /home/patrick/.ssh/ 目录下:
查看一下 .ssh 目录下有没有:
发现已经有了,验证一下内容:
没问题,那就直接 ssh 登录:
三、提权
登陆成功,看一下权限:
发现可以以 root 身份执行任意命令
不过需要 patrick 的密码,找找系统中的文件,看有没有线索,最后在 ~/flask_blog/app.py 文件中找到了:
切换 root 账户:
完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步