array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Wireshark使用详解 - 爱码网

目录

WireShark

Wireshark的简单使用

数据包的过滤

数据流追踪 

专家信息说明

数据包的统计分析 

导出对象——>HTTP

数据包分析过程中的一些小技巧 


WireShark

WireShark只要是学计算机的人应该都听过,也用过。一个非常好用的免费的抓包工具。Wireshark使用WinPcap作为接口,直接与网卡进行数据报文交换。

Wireshark的简单使用

Wireshark使用详解

双击选择了网卡之后,就开始抓包了

Wireshark使用详解

停止抓包后,我们可以选择保存抓取到的数据包。文件——> 另存为——>选择一个存储路径,然后就保存为后缀为 .pcap 格式的文件了,可以双击直接用wireshark打开。

数据包的过滤

数据包过滤是wireshark一个很实用的功能了,通常我们抓包会抓取到网卡通过的所有数据包。很多数据包对于我们来说是没用的,所以我们就需要对其进行过滤。数据包的过滤可以分为 抓取时过滤 和 抓取后的过滤  。这两种过滤的语法不同!

抓取时过滤 

捕获——>捕获过滤器,这是wireshark默认的一些捕获过滤器,我们可以参照他的语法,自己在左下角自己添加或者删除捕获过滤器

Wireshark使用详解

然后如果我们想抓取时对数据包过滤,捕获——>选择,然后选择我们要抓取数据包的网卡,在下面选择我们的过滤器。绿色的话表示语法没有问题,设置好了之后点击开始就可以抓取数据包了

Wireshark使用详解 抓取后的过滤 

我们一般都是抓取完数据包后进行过滤的,在上方输入我们的过滤语法

过滤地址
ip.addr==192.168.10.10  或  ip.addr eq 192.168.10.10  #过滤地址
ip.src==192.168.10.10     #过滤源地址
ip.dst==192.168.10.10     #过滤目的地址

过滤协议,直接输入协议名
icmp 
http

过滤协议和端口
tcp.port==80
tcp.srcport==80
tcp.dstport==80

过滤http协议的请求方式
http.request.method=="GET"
http.request.method=="POST"
http.request.uri contains admin   #url中包含admin的
http.request.code==404    #http请求状态码的

连接符
&&  
||
and
or

通过连接符可以把上面的命令连接在一起,比如:
ip.src==192.168.10.10 and http.request.method=="POST"

Wireshark使用详解

数据流追踪 

我们的一个完整的数据流一般都是由很多个包组成的,所以,当我们想查看某条数据包对于的数据流的话,我们就可以:右键——>追踪流,然后就会有TCP流、UDP流、SSL流、HTTP流。当你这个数据包是属于哪种流,就可以选择对应的流

Wireshark使用详解

当我们选择了追踪流时,会弹出该流的完整数据流。还有这个数据流中包含的数据包。顶部的过滤器就是该流的过滤规则

 专家信息说明

功能:可以对数据包中特定的状态进行警告说明。

  • 错误(errors)
  • 警告(Warnings)
  • 标记(notes)
  • 对话(chats)

路径:分析——>专家信息

Wireshark使用详解

数据包的统计分析 

分析一栏中,可以对抓取的数据包进行进一步的分析,比如抓取的数据包的属性、已解析的地址、协议分级等等。我就不一一列出来了

Wireshark使用详解

已解析的地址 

功能:统计通信流量中已经解析了的地址

路径:统计——>已解析的地址

Wireshark使用详解

协议分级

功能:统计通信流量中不同协议占用的百分比

路径:统计->协议分级

Wireshark使用详解

统计摘要说明

功能:可以对抓取的数据包进行全局统计,统计出包的一些信息

路径:统计->捕获文件属性 

Wireshark使用详解

导出对象——>HTTP

这个功能点非常有用,他可以查看并且导出HTTP流对象,这对于数据包分析非常有用!

Wireshark使用详解

Wireshark使用详解

数据包分析过程中的一些小技巧 

  • 大量404请求——>目录扫描
  • 大量 select....from 关键字请求——>SQL注入
  • 连续一个ip的多端口请求或多个ip的几个相同端口请求——>端口扫描
  • 黑客通过爆破账户和密码,则是post请求   http.request.method==POST
  • 黑客修改文件,  ip.addr==219.239.105.18 and http.request.uri matches "edit|upload|modify"  
  • 如果是用菜刀连接的包,则是post请求  ip.addr==219.239.105.18  and  http.request.method==POST


 

相关文章: