If-Koubou

Pratite MySQL upite s mysqlsniffer na Ubuntu

Pratite MySQL upite s mysqlsniffer na Ubuntu (Kako da)

Imate poslužitelj za proizvodnu bazu podataka i ne možete omogućiti prijavljivanje upita ... pa kako vidite upite koji se izvršavaju protiv baze podataka?

Odgovor: upotrijebite izmijenjeni njuškanje mreže kako biste analizirali MySQL pakete i dekodirali ih. Morat ćete malo napisati, ali to će biti vrijedno toga. Imajte na umu da to obično ne funkcionira za lokalne veze, iako vam je dobrodošlo.

Prvo, morate instalirati libpcap-dev, što je razvojna knjižnica koja aplikaciji omogućuje njuškanje mrežnih paketa.

sudo apt-get install libpcap-dev

Sada napravimo direktorij, preuzmi izvorni kod i sastavimo ga

mkdir mysqlsniffer

cd mysqlsniffer

wget hackmysql.com/code/mysqlsniffer.tgz

tar xvfz mysqlsniffer.tgz

gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c

U ovom trenutku imamo sjajnu novu izvršnu datoteku pod nazivom mysqlsniffer u našem izvornom direktoriju. Možete ga kopirati gdje god želite (negdje na stazi bi bilo korisno)

Da biste pokrenuli mysqlsniffer, morate odrediti mrežno sučelje koje MySQL sluša. Za mene je eth0.

sudo / put / to / mysqlsniffer eth0

Puno stvari počinje letjeti ... neka je filtrira malo više pa možemo samo dobiti upite, a ne sve prekomjerne podatke.

$ sudo / put / do / mysqlsniffer -no-mysql-hdrs eth0 | grep COM_QUERY

192.168.73.1.2622> poslužitelj: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622> poslužitelj: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622> server: COM_QUERY: SET NAMES utf8
192.168.73.1.1636> poslužitelj: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636> poslužitelj: COM_QUERY: POKAŽAJTE PUNI KOLONI IZ 'db2842_howto'. 'Wp_users'

Ah, sad smo ... sve vrste upita, bez ponovnog pokretanja MySQL-a.

Ovdje su pune mogućnosti za naredbu:

Upotreba: mysqlsniffer [OPTIONS] INTERFACE

OPCIJE:
-port N Slušajte MySQL na portu broj N (zadani 3306)
-verbose Prikaži dodatne informacije o paketima
-tcp-ctrl Prikaži TCP kontrolne pakete (SYN, FIN, RST, ACK)
-net-hdrs Prikaz glavnih vrijednosti IP i TCP zaglavlja
-no-mysql-hdrs Ne prikazuj MySQL zaglavlje (paket ID i duljina)
-state Prikaži stanje
-v40 MySQL poslužitelj je verzija 4.0
-dump Dump sve pakete u hex
- pomoć Ispiši ovo

Izvorni izvorni kod i više informacija na:
http://hackmysql.com/mysqlsniffer

Ako radite na razvojnom poslužitelju, lakše je uključiti samo zapisivanje upita.