Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser wireshark pour capturer clairement la requête mysql sql

Vous pouvez utiliser tshark et enregistrer dans un pcap ou simplement exporter les champs qui vous intéressent.

Pour enregistrer dans un pcap (si vous souhaitez utiliser wireshark pour afficher plus tard) :

tshark -i lo -Y "mysql.command==3" -w outputfile.pcap
tshark -i lo -R "mysql.command==3" -w outputfile.pcap
-R is deprecated for single pass filters, but it will depend on your version
-i is interface so replace that with whatever interface you are using (e.g -i eth0)

Pour enregistrer dans un fichier texte :

tshark -i lo -Y "mysql.command==3" -T fields -e mysql.query > output.txt

Vous pouvez également utiliser des filtres BPF avec tcpdump (et des filtres pré-cap Wireshark). Ils sont plus complexes, mais moins contraignants pour votre système si vous capturez beaucoup de trafic.

sudo tcpdump -i lo "dst port 3306 and  tcp[(((tcp[12:1]&0xf0)>>2)+4):1]=0x03" -w outputfile.pcap

REMARQUE :
*Cela recherche 03 (similaire à mysql.command==3) dans la charge utile TCP.
**Comme il s'agit d'un filtre assez lâche, j'ai également ajouté 3306 pour restreindre uniquement le trafic destiné à ce port.***Le filtre est basé sur votre capture d'écran. Je ne peux pas le valider pour le moment, alors faites-moi savoir si cela ne fonctionne pas.

Exemple de sortie :