当前位置: 首页 > 知识库问答 >
问题:

Curator Framework绕过Zookeeper ACL设置

邹书
2023-03-14

我需要为访问动物园管理员服务器内数据的客户端设置用户:密码身份验证。我正在用zkCli和Curator Framework进行实验,以弄清楚这是如何工作的,出于某种原因,从Curator框架执行的代码会绕过所有安全设置,并在不应该拥有这些设置的情况下,以完全访问权限的方式运行。

我一直在关注这些问题的答案:

与Curator一起使用ACL

如何使用zkCli从ZooKeeper访问受保护的znode?

zkCli:

[zk: localhost:7999(CONNECTED) 29] create /testpath contents digest:user:smGaoVKd/cQkjm7b88GyorAUz20=:cdrwa
Created /testpath
[zk: localhost:7999(CONNECTED) 4] getAcl /testpath
'digest,'user:smGaoVKd/cQkjm7b88GyorAUz20=
: cdrwa
[zk: localhost:7999(CONNECTED) 30] rmr /testpath  
Authentication is not valid : /testpath
[zk: localhost:7999(CONNECTED) 31]

上述结果与预期相符,我们添加了ACL限制,现在我们无法访问创建的节点。但是,当我尝试使用Curator Framework访问此节点时,它会删除它,但不应该。

        String zkConnectString = "hostname:7999";
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);

        CuratorFramework client = CuratorFrameworkFactory.builder()
                .connectString(zkConnectString)
                .retryPolicy(retryPolicy)
                .build();
        client.start();
        try {
            client.delete().forPath("/testpath");
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(0);
        }

因此,java Curator Framework代码成功删除了节点,而没有给出任何身份验证错误。我做错了什么?

产品版本:

馆长框架:2.11.1

Zookeeper服务器:3.4.5

Zookeeper java客户端:3.4.12

共有1个答案

邓浩漫
2023-03-14

在动物园管理员 CLI 中,您正在调用 rmr,即全部删除。您收到 ACL 冲突,因为 ACL 适用于 /testpath 下的节点,并且您没有要删除/获取 /testpath 下的节点(很可能是 get 在抱怨)节点。请注意,如果在 CLI 中,您改为尝试删除 /testpath,它的工作原理(我自己测试过),因为节点 /测试路径采用其父级的 ACL。TBH 我永远无法让动物园守护者 ACL 直接记在脑海里,我写了《策展人》。因此,简而言之,策展人正在做正确的事情(与CLI所做的相同)。

 类似资料:
  • 简要描述 有些时候,通用的绕过技巧并不可行,这个时候我们就得观察缺陷点的周围环境,想想其它办法咯。“猥琐绕过”与通用绕过不 同的是,它通用性小,往往只是特例。 详细说明 1. 直接看实例点: http://qzs.qq.com/qzone/v6/custom/custom_module_proxy.html#siDomain=1&g_StyleID=aaaaaaaaaa 2. 可以看出,这是一个

  • 简要描述 关于反射型的基本东西,暂时就到这啦,如果后面有什么好的 case,再做增补。最近,有些人会问到怎么绕过浏览器的 XSS 过滤 器,所以从这节开始,给出点绕过的例子。当然这些绕过浏览器的方法,不是万能的。不同浏览器,不同场景都会存在差异。满足场景 要求时,才可以使用。 此文给出的是一个来自 sogili 分享的 chrome 下绕过过滤器的方法,在腾讯某处 XSS 上的应用。 这一类都算是

  • phpinfo()返回这个有问题的特定设置: 这不是其他线程的副本。我不能改变上面提到的文件的CHMOD值,我的问题是关于覆盖一个设置跳过电子邮件日志。

  • 在上一节中,我们了解了如何嗅探和捕获通过HTTP请求发送的任何数据包。谷歌,Facebook等大多数知名网站都使用HTTPS而不是HTTP。当我们使用MITM时,当该被攻击的用户访问网站时,该网站将显示一条警告消息,指出网站的证书无效。那么被攻击的用户不会登录。为了解决这个问题,我们将使用工具SSLstrip。此工具用于将任何HTTPS请求降级为HTTP。因此,每当目标人员试图访问任何网站时,他们

  • 问题内容: 我有一个浮点数的大数据集。我遍历它们并为它们中的每一个进行评估。我懂了 我想解决这个问题,如果发生此错误,则返回0。 我正在考虑定义一个新功能: 基本上,我需要一种测试输出是否正确的方法,但我不知道如何进行。感谢您的帮助! 问题答案: 由于for为负无穷大,因此我只需要检查输入值是否为零并返回您想要的值即可: 编辑 :小编辑:您应该检查所有小于或等于0的值。 编辑2 :当然是在nump

  • 我是一名Linux用户,很不高兴发现vhx等网站上的HDCP保护。电视阻止我在完全合法的上下文中查看内容,因为所有Linux浏览器都缺乏HDCP支持。由于HDCP在几年前被“破坏”,就主密钥泄漏而言,任何设备理论上都可以针对HDCP检查进行授权。 假设,是什么阻止某人编写浏览器扩展或创建自定义firefox构建以这种方式覆盖DRM API? 为什么没有这样的项目,仅仅是缺乏兴趣,还是有一个难以逾越