מעקב אחר שאילתות MySQL עם mysqlsniffer על אובונטו
יש לך שרת מסד נתונים של ייצור, ואינך יכול להפעיל רישום שאילתות ... אז איך אתה רואה את השאילתות מבוצעות נגד מסד הנתונים?
התשובה: להשתמש במריח הרשת שונה כדי לנתח את מנות MySQL ולפענח אותם. יהיה עליך לעשות קצת קומפילציה, אבל זה יהיה שווה את זה. שים לב שבדרך כלל זה לא יעבוד עבור חיבורים מקומיים, למרות שאתה מוזמן לנסות.
ראשית, אתה צריך להתקין libpcap-dev, המהווה את ספריית הפיתוח המאפשר יישום לרחרח מנות הרשת.
sudo apt- לקבל להתקין libpcap-dev
עכשיו בואו לעשות ספרייה, להוריד את קוד המקור ולעבד אותו
mkdir mysqlsniffer
cd mysqlsniffer
wcode hackmysql.com/code/mysqlsniffer.tgz
xvfz
GCC -O2 -lpcap-mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c
בשלב זה, יש לנו הפעלה חדשה מבריקה בשם mysqlsniffer בספריית המקור שלנו. אתה יכול להעתיק אותו בכל מקום שתרצה (איפשהו בנתיב יהיה שימושי)
כדי להפעיל את mysqlsniffer, עליך לציין את ממשק הרשת ש- MySQL מקשיב. בשבילי, זה eth0.
sudo / path / to / mysqlsniffer eth0
המון דברים מתחיל עף על ידי ... בואו לסנן את זה קצת יותר, כך שאנחנו יכולים פשוט לקבל את השאילתות ולא את כל הנתונים העודפים.
$ sudo / path / to / mysqlsniffer -no-mysql-hdrs eth0 | grep COM_QUERY
192.168.73.1.2622> שרת: COM_QUERY: בחר @@ sql_mode
192.168.73.1.2622> שרת: COM_QUERY: SET SESSION sql_mode = "
שרת: COM_QUERY: הגדרת שמות utf8
> שרת: COM_QUERY: בחר @ @ SQL_MODE
192.168.73.1.1636> שרת: COM_QUERY: הצג COLUMNS מלא 'db2842_howto'. 'Wp_users'
אה, עכשיו יש לנו ... כל מיני מידע שאילתה, מבלי להפעיל מחדש את MySQL.
להלן האפשרויות המלאות עבור הפקודה:
שימוש: mysqlsniffer [אופציות] ממשק
אפשרויות:
-Port N האזן עבור MySQL במספר היציאה N (ברירת מחדל 3306)
-verbose הצג מידע נוסף על מנות
-tcp-ctrl הצג מנות בקרת TCP (SYN, FIN, RST, ACK)
-net-hdrs הצג ערכי IP עיקריים ו- TCP
-no-mysql-hdrs אל תציג כותרת MySQL (מזהה מנות ואורך)
-מצב הצג מדינה
-שרת V40 MySQL הוא גירסה 4.0
-לזרוק את כל מנות ב hex
-עזרת הדפס זה
קוד המקור המקורי ומידע נוסף בכתובת:
http://hackmysql.com/mysqlsniffer
אם אתה מפעיל על שרת הפיתוח, זה יהיה קל יותר פשוט להפעיל את רישום השאילתה.