Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
mysql-mysqlbinlog-raw-path — MySQL Community Server 26.7.0 - उच्च - mysqlbinlog --raw Rotate path leftover - client file write | Kitploit
उपकरण/GitHubGitHub/abraxas/mysql-mysqlbinlog-raw-path
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/mysql-mysqlbinlog-raw-path

mysql-mysqlbinlog-raw-path

MySQL Community Server 26.7.0 - उच्च - mysqlbinlog --raw Rotate path leftover - client file write

रिपॉजिटरी देखें
9 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - mysql-mysqlbinlog-raw-path

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  mysql-mysqlbinlog-raw-path

mysql-mysqlbinlog-raw-path

वर्ग: फ़ाइल राइट (क्लाइंट) पहुँच: रिमोट (UI:R)

MySQL Community Server mysqlbinlog 26.7.0 (06a5c1c) - Oracle

mysqlbinlog --raw --read-from-remote-server एक Rotate इवेंट के new_log_ident को log_file_name में कॉपी करता है, बिना किसी basename जाँच के। अगला FORMAT_DESCRIPTION इवेंट उस पथ को my_fopen करता है और BINLOG_MAGIC के साथ इवेंट लिखता है। एक शत्रुतापूर्ण डंप जो / के साथ एक असली Rotate ident भेजता है, वह फ़ाइल को क्लाइंट UID के रूप में लिखता है।

--raw प्रलेखित रिमोट binlog फ़ाइल कॉपी है। बचा हुआ हिस्सा ident को एक पथ के रूप में मान रहा है।

IDअभी तक कोई CVE नहीं
वर्गफ़ाइल राइट (क्लाइंट --raw BINLOG_MAGIC)
पहुँचरिमोट (पीड़ित हमलावर डंप के विरुद्ध mysqlbinlog --raw -R चलाता है; UI:R)
CWECWE-22
CVSSउच्च: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
उत्पादMySQL Community Server mysqlbinlog
प्रभावित26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
प्रमाणीकरणपीड़ित हमलावर डंप के विरुद्ध mysqlbinlog --raw -R चलाता है
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1। BINLOG_MAGIC के साथ साक्षी फ़ाइल। फ़ाइल राइट, RCE नहीं।

हमलावर क्या कर सकता है

एक MySQL-प्रोटोकॉल सर्वर खड़ा करें। COM_BINLOG_DUMP बोलें। एक मेल खाता नकली Rotate भेजें (टाइमस्टैम्प 0, ident अनुरोधित लॉग नाम के बराबर) ताकि डंप रुके नहीं। एक असली Rotate भेजें (टाइमस्टैम्प != 0) जिसका ident /abs/path है। एक FORMAT_DESCRIPTION इवेंट भेजें।

जिस ऑपरेटर ने mysqlbinlog --raw -R ... mysql-bin.000001 चलाया, वह /abs/path को क्लाइंट UID के रूप में लिखता है। सामग्री binlog बाइट्स (\xfebin के साथ FD इवेंट) है, कोई मनमाना पेलोड नहीं। उस UID द्वारा बनाए जा सकने वाले किसी भी पथ को ओवरराइट करें।

एक असली mysqld / के साथ Rotate ident उत्सर्जित नहीं करेगा। बचा हुआ हिस्सा क्लाइंट है।

मैंने इसे कैसे खोजा

वही 26.7.0 शिकार जो mysqldump SHOW TABLES overflow और mysqldump --tab path में था। डिफ़ॉल्ट डेमन खाली था। क्लाइंट टूल्स अभी भी रिमोट नामों पर भरोसा करते थे।

if (raw_mode) {
  if (output_file != nullptr) {
    snprintf(log_file_name, sizeof(log_file_name), "%s%s", output_file,
             rev->new_log_ident);
  } else {
    my_stpcpy(log_file_name, rev->new_log_ident);
  }
}

नकली Rotate (when.tv_sec == 0) जिसका ident अनुरोधित लॉग से मेल नहीं खाता, डंप को रोक देता है। मेल खाता नकली Rotate कॉपी के बाद छोड़ दिया जाता है (continue)। असली Rotate नहीं रोकता। अगला FD:

if (!(result_file = my_fopen(
          log_file_name, O_WRONLY | MY_FOPEN_BINARY, MYF(MY_WME)))) {
  error("Could not create log file '%s'", log_file_name);

LOAD DATA temps tmpdir के अंतर्गत SQL_LOAD_MB रहते हैं। बंद। Ident लंबाई FN_REFLEN-1 तक सीमित है। / हटाया नहीं जाता।

पहले से दर्ज गलत रास्ते: एक नकली Rotate भेजना जिसका ident पथ है (डंप रुक जाता है); --result-file का उपयोग करना (ident एक प्रीफ़िक्स बन जाता है, अलग बचा हुआ हिस्सा); ओरेकल के रूप में एक असली mysqld; चेकसम चालू छोड़े गए।

लैब

cd lab
./run.sh

इमेज mysql:26.7.0। बाइनरी /usr/libexec/mysqlsh/mysqlbinlog Ver 26.7.0 (उस इमेज में PATH पर नहीं)। कंट्रोल स्टब: नकली Rotate mysql-bin.000001 के साथ FD work/mysql-bin.000001 लिखता है। ट्रैवर्सल स्टब: मेल खाता नकली Rotate, असली Rotate ident /work/oracle/MYSQL-BINLOG-RAW-WITNESS, FD उस पथ को लिखता है (BINLOG_MAGIC)। प्रकाशित 127.0.0.1:18620 / 18621। इसे लूपबैक पर बाइंड करें। binlog बाइट्स का फ़ाइल राइट, RCE नहीं। कोई --result-file नहीं।

control-basename=yes
traversal-outside=yes
SUCCESS mysql-mysqlbinlog-raw-path ... MYSQL-BINLOG-RAW-WITNESS

समाधान

log_file_name में my_stpcpy / snprintf से पहले new_log_ident का basename लें। --raw को cwd या --result-file प्रीफ़िक्स के अंतर्गत लिखना चाहिए, / वाले ident के अंतर्गत नहीं।

संदर्भ

  • github.com/mysql/mysql-server टैग mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • client/mysqlbinlog.cc dump_remote_log_entries
  • सहोदर पैक: abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path
टूल डाउनलोड करें