SSRF中Redis的利用

目录

1. SSRF

1.1 什么是SSRF

1.2 漏洞成因

1.3 可能会存在SSRF的地方

1.4 SSRF分类

1.5 验证方法

1.6 利用方式

1.7 可以利用的协议

1.8 SSRF过滤绕过

2. SSRF攻击Redis

2.1 环境搭建

2.2 漏洞复现(通过ssrf利用redis写入webshell)

2.2.1 想要写入webshell的两个条件

2.2.2 通过gopherus实现

0x00 Gopherus(gopher协议利用工具)

Gopherus简介

Gopherus可以生成的payload

命令

实际演示

2.2.3 通过Dict协议实现

Dict协议使用注意事项

实际演示

3. Weblogic SSRF漏洞(Redis利用)

3.1 环境搭建

3.1.1 Vulhub

3.1.2 运行环境

3.2 漏洞测试

3.2.1 内网扫描

3.2.2 通过redisGetshell

3.2.3 crontab可以写入的位置


本文由掌控安全学院 - Track-劲夫 投稿

1. SSRF

1.1 什么是SSRF

 SSRF(Server-Side Request Forgery,服务器请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞,一般情况下,SSRF攻击的目标是外网无法访问的内网系统(因为请求是由服务端帮我们发起的,所以我们可以通过它来向其所在的内网机器发起请求)。

1.2 漏洞成因

 SSRF漏洞形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。例如,黑客操作服务端从指定URL地址获取网页文本内容,加载指定地址的图片等,利用的是服务端的请求伪造,SSRF利用存在缺陷的WEB应用作为代理攻击远程和本地的服务器。

1.3 可能会存在SSRF的地方

 
  1. > 转码服务

  2. > 在线翻译

  3. > 获取超链接的标题等内容进行显示

  4. > 请求远程服务器资源的地方,图片加载与下载(通过URL地址加载或下载图片)

  5. > 图片、文章收藏功能

  6. > 对外发起网络请求的地方,网站采集、网页抓取的地方。

  7. > 一切要你输入网址的地方和可以输入ip的地方。

  8. > 数据库内置功能(mongodb的copyDatabase函数)

  9. > 从URL关键字中寻找:share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain

1.4 SSRF分类

 我觉得就分为回显和不回显两种方式,会回显请求的响应内容那么最好不过,如果不会回显的话,那么一般就只能通过响应时间来判断了

1.5 验证方法

 如果是会回显信息的SSRF漏洞,那么看他的响应结果就好了,如果是不会回显的,那么我们可以利用DNSLOG来进行判断

1.6 利用方式

  1. 对外网或服务器所在的内网或服务器自身发起端口扫描

  2. 攻击运行在内网或本地的应用程序

  3. 利用file协议读取本地文件

  4. ……..

1.7 可以利用的协议

  1. http/https,发起HTTP请求

  2. file,如果会回显数据的话,那么我们可以使用file协议读取目标本地文件

  3. dict,可以用来探测目标端口

  4. gopher,可以发送get/post请求

  5. ftp,文件传输协议

  6. …..

1.8 SSRF过滤绕过

  1. 0.0.0.0,这个IP地址可以直接访问到本地

  2. 把IP地址的格式进行转换从而绕过

 
  1. 通常我们用的是127.0.0.1,但事实上127这个段的地址都用来表示本机地址了,所以像127.155.155.155这样的也是可以的,还可以进行进制转换也是可以的

  2. > 8进制(把127转为八进制写的时候前面加个0):0177.0.0.1

  3. > 16进制(把127转为十六进制写的时候前面加个0x):0x7f.0.0.1

  4. > 16进制整数格式:0X7F000001

  5. > 10进制证书格式(把16整数转为10进制):2130706433

  6. 上面这些都是可以访问到的

  1. localhost

  2. 利用@绕过例如,www.baidu.com@127.0.0.1

  3. 利用非HTTP协议,例如上面说到的gopher或者dict

  4. 利用DNS解析(可以用DNSLOG)

  5. 利用IPv6

  6. 添加端口号

  7. [::]代替127.0.01,比如http://[::]:80,这样也是可以访问到的

2. SSRF攻击Redis

2.1 环境搭建

使用Docker进行环境的搭建,需要的文件我已经打包好了,如果没有docker环境的话需要安装(请使用linux系统)

  1. 使用tar xzvf ssrf.tar.gz解压ssrf.tar.gz,

  2. cd ssrf_dockerfile,进入到解压的文件目录下

  3. 构建镜像,docker build -t ssrf:v1 .

    图片

  4. Successfully built说明构建成功,也可以再使用docker images命令查看镜像是否存在

    图片

  5. docker run -d -p 80:80 ssrf:v1,启动镜像

    图片

  6. 启动成功,访问127.0.0.1查看是否搭建成功

    图片

  7. 漏洞点为ssrf.php,参数名为url,测试一下是否存在漏洞

    图片

环境搭建完毕

2.2 漏洞复现(通过ssrf利用redis写入webshell)

2.2.1 想要写入webshell的两个条件

  1. 要知道网站的绝对路径

  2. redis有目录的写入权限

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值