漏洞复现——vulhub中的SSRF漏洞

1.SSRF简介(原理)

SSRF是一种由恶意访问者构造,形成由服务器端发起请求的一种安全漏洞。
一般情况下,ssrf访问的目标是外网无法访问的内部系统(正是因为请求是由服务端发起的,所以能够请求到与它相连,与外界隔离的内部系统)
**原理:**服务端提供了从其他服务器获取数据的能力,但是并没有对目标地址做过滤或者限制,所以导致攻击者可以向受害者服务器传入任意的url,并将请求数据返回。
请添加图片描述

1.2危害

  • 对服务器所在的内网进行端口扫描,获取一些服务的banner信息
  • 攻击运行在内网或本地的程序
  • 对内网的web应用进行指纹识别,识别企业的内部信息
  • 利用file协议读取本地文件
  • 攻击内外网的web应用,主要是使用http,get请求就可以实现的攻击(如struts2,SQLi)

1.3常见ssrf漏洞的位置

  • url地址分享的页面
  • 转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
  • 在线翻译:给网址翻译对应网页的内容
  • 图片加载与下载: 通过URL地址加载或下载图片,图片加载远程图片地址此功能用到的地方很多,但大多都是比较隐秘,比如在有些公司中的加载自家图片服务器上的图片用于展示。
  • 图片、文章收藏功能
    此处的图片、文章收藏中的文章收藏就类似于功能一、分享功能中获取URL地址中title以及文本的内容作为显示,目的还是为了更好的用户体验,而图片收藏就类似于功能四、图片加载。

1.4ssrf防御

  • 过滤返回信息,如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
  • 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
  • 限制请求的端口为http常用的端口,比如,80,443,8080。
  • 黑名单内网ip。避免应用被用来获取内网数据,攻击内网。
  • 禁用不需要的协议。仅仅允许http和https请求。

2.模拟weblogic的ssrf漏洞实验

漏洞描述

Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。

影响版本

weblogic 10.0.2
weblogic 10.3.6

漏洞修复

Weblogic SSRF 漏洞出现在 uddi 组件(所以安装Weblogic时如果没有选择 uddi 组件那么就不会有该漏洞),
更准确地说是 uudi 包实现包 uddiexplorer.war 下的 SearchPublicRegistries.jsp。
所以修复的直接方法是将 SearchPublicRegistries.jsp 直接删除就好了

源码分析:https://zhuanlan.zhihu.com/p/266211467

2.1打开centOS7的虚拟机,启动docker

systemctl start docker

2.2进入vulhub/weblogic/ssrf/中

打开靶场说明书

gedit README.md或者
cat README.md

在这里插入图片描述

2.3启动靶场,进入对应网址

docker-compose up -d

在这里插入图片描述

在这里插入图片描述
在浏览器中打开http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp
在这里插入图片描述

2.4使用bp抓包,发送Repeater模块

在这里插入图片描述

2.5复制说明书中的代码粘贴到GET请求后

在这里插入图片描述

2.6 将复制的代码粘贴到GET请求的位置,然后获取Weblogic的ip、本机IP替换掉原有IP并把本机ip端口改为4444

2.6.1获取weblogic的ip

查看容器的id
docker ps -a
查看weblogic的ip
docker inspect 容器id

docker inspect 96330d40bda2  

Weblogic 的 SSRF 有一个比较大的特点,其虽然是一个“GET”请求,但是我们可以通过传入%0a%0d来注入换行符,
而某些服务(如 redis)是通过换行符来分隔每条命令,也就说我们可以通过该 SSRF 攻击内网中的 redis 服务器。

首先,通过 ssrf 探测内网中的 redis 服务器,应为这个漏洞是用 docker 环境搭建的,所以 redis 服务器的内网即是
在这里插入图片描述
在这里插入图片描述

需要替换的地方
在这里插入图片描述
替换之后
在这里插入图片描述

2.7 在虚拟机上开启监听,发送数据包

nc -lvnp 4444

确认替换正确之后,点击发送send
在这里插入图片描述

2.8监听成功,获得getshell权限

在这里插入图片描述

2.9 移除环境,关闭容器

docker-compose down
systemctl stop docker

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值