如何在Wireshark中过滤数据包的内容?


8

我有一个与Oracle数据库进行通信的应用程序,它的日志记录非常糟糕,因此,我可以通过数据包嗅探TNS来锻炼它向数据库发送的SQL的唯一方法。我想用那些包含特殊名称的包来过滤这些包,即包中是否存在特殊字符串。我怎样才能做到这一点?

谢谢。

Answers:


13

您是否尝试过“包含”或“匹配”运算符?例如,

tns.request and tns contains "Marshmallows"

或简单地

frame matches "(?i)marshmallows"

第一个示例查找包含区分大小写的字符串“棉花糖”的TNS请求。第二个示例在不考虑大小写的情况下,在任何框架中的任何位置查找“棉花糖”。(“ contains”进行简单的字符串匹配;“ matches”使您可以使用PCRE修饰符)。


更新:在Wireshark 2.6和更高版本中,“匹配”默认情况下不区分大小写。您可以使用“(?-i)” PCRE修饰符来强制区分大小写。


谢谢,我以为这很简单,我真正想知道的就是欢呼。

0

您的问题有几种解释:

  1. 您正在使用WireShark,并希望进行更复杂的过滤以更好地分析数据。在这种情况下,请阅读docs。如果需要额外的表达能力,还可以在Lua中对过滤器进行编程。

  2. 您想将那些数据包过滤掉;即应用程序级防火墙或NIDS。检查用于防火墙/整形的L7过滤器,或用于NIDS的Snort(我认为后者也可以使用一些Lua脚本)

  3. 您希望捕获要记录的数据包,创建统计信息或任何其他自动化任务。检查tcpdump / libpcap和/或我自己的libpcap绑定的Lua


是的,我已经阅读了文档,但是找不到我想要的东西。我要做的就是添加一个过滤器以在原始数据包数据中找到一个strind。我在TNS.request过滤的数据上进行搜索,但这只是跳过出现字符串的每个数据包。抱歉,我认为这确实有点语法。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.