目录
靶场搭建
报错问题解决
组合利用
使用goherus生成payload
靶场搭建
首先我们进入ubutuo拉取靶场
docker run -d -p 8765:80 8023/pikachu-expect:latest
报错问题解决
如果出现docker报错,靶场一直拉取不下来
解决办法:配置镜像加速器
vim /etc/docker/daemon.jison
然后再重启docker服务
systemctl daemon-reload
systemctl restart docker
组合利用
进入题目,我们分析下源码,源码过滤了file协议、dict协议、127.0.0.1和localhost,但没有过滤http协议和gopher协议我们使用http协议进行内网主机存活探测,发现存在ssrf漏洞
我们可以看到这个只要有info参数就可以看phpinfo信息,先看一下,我们查看phpinfo,查到了当前主机的内网ip为172.21.0.2
这里我们使用bp进行扫端口
这里我们可以看到只开放了80端口,感觉没什么用,随后又手动探查172.21.0.1,发现这个ip并没有什么反应,不甘心再次尝试172.21.0.3,转机出现了
我们使用bp扫一下开放那些端口
发现6379端口开着,访问之后报错,说明这台内网主机上还运行着redis服务
使用goherus生成payload
将生成的payload再次用url进行编码,然后发送过去,然后使用ssrf访问这个内网的upload/shell.php文件得到flag