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

  • A+
所属分类:安全文章

前言:

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

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

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

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

文章最后,会有我批量刷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.htmlhttp://****.bl******.com.cn/***-****-view/#/

漏洞概述:

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

 

攻击流程:

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

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

                           

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

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

 

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

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

  

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

POST /********-service/me****ship/index/ HTTP/1.1Host: *****.bl*******.com.cnUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101Firefox/79.0Accept: 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.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencoded; charset=UTF-8Content-Length: 101Origin: http://***p.********.com.c*Connection: closeReferer: 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观察返回包:

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

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


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

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

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

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


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

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

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

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

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

  

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

 

批量验证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文本保存结果不适合直接使用,大家可以自己编写小脚本对文件进行处理,或者大佬们不嫌弃的话,可以使用下面这个小代码记录一次Druid未授权访问的实战应用

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,[email protected]@@")

 

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

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

 

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

./xray webscan --poc poc-yaml-druid-monitor-unauth--url-file ./存活的子域名.txt --html-output test.html


祝君好运,天天挖高危

如果喜欢点个赞再走呗

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

为大家精选一份WEB信息/资产收集的武器库(下)

知己知彼,百战不殆 :为大家精选一份WEB信息/资产收集相关的文章(上)

本文始发于微信公众号(玄魂工作室):记录一次Druid未授权访问的实战应用

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: