Java网络爬虫(十四)–使用tcpdump和wireshark进行网络抓包与分析

互联网技术 waitig 638℃ 百度已收录 0评论

最近打算通过学校的某某系统抓取一下每个学生的个人信息,由于需要进行模拟登录,所以就要对登录页面进行post参数的提交。但是在进行网络抓包的过程中,使用chrome自带的网络抓包分析工具(也就是F12)发现每次在进行登录提交表格之后,chrome并不能将所需要提交的参数表单抓取下来。

问了学长原因,觉得是登录成功之后因为页面的跳转需要进行刷新,所以就将表单提交的那部分数据给刷掉了。学长提供的解决办法是使用fiddler网络抓包工具进行抓包及分析。但在查阅相关资料之后发现fiddler对Linux操作系统(本人开发环境Ubuntu 16.04)的支持并不是很好。所以我使用了tcpdump进行网络抓包,结合wireshark进行数据包的分析。

需求如下:

这里写图片描述

如图,提交登录表单的页面,然后使用chrome自带抓包工具进行网络抓包:

这里写图片描述

这里面并没有我想要的东西。


tcpdump的使用

tcpdump [-i 网卡] -nnAX ‘表达式’

各参数说明如下:

-i:interface 监听的网卡。
-nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务。
-A:以ascii的方式显示数据包,抓取web数据时很有用。
-X:数据包将会以16进制和ascii的方式显示。
表达式:表达式有很多种,常见的有:host 主机;port 端口;src host 发包主机;dst host 收包主机。多个条件可以用and、or组合,取反可以使用!,更多的使用可以查看man 7 pcap-filter。

具体的使用我就不再贴出,推荐大家看这篇博客:linux使用tcpdump抓包工具抓取网络数据包,多示例演示

补充一点的就是,我们使用tcpdump进行网络抓包,然后接下来需要使用wireshark进行数据分析,所以我们需要将tcpdump截获的网络数据保存为cap文本格式。

使用形式为(后台执行):tcpdump -i eno1 port 8080 -w /tmp/xxx.cap &


wireshark的使用

其实wireshark是一个非常强大的网络分析与监控软件,它不但可以分析网络数据包,也可以进行网络抓包。但是由于我先接触了tcpdump,所以对于wireshark怎么进行网络抓包并不是特别清楚,如果是想要学习wireshark的同学,建议自己在网上进行相关资料的查找。

安利大家一个Ubuntu下面wireshark安装与部署的教程(亲测有效):ubuntu下安装wireshark(以及配置非root)

当打开wireshark之后,就可以打开我们刚才保存的cap文件,具体的操作过程我不再演示,我们还可以使用wireshark过滤其中的数据,好比我们只需要http协议产生的数据,只需要设置好相应的应用显示过滤器即可。

算了,还是再安利大家一个简单的wireshark使用教程吧,其中安装的过程我们不需要再进行学习,直接查看使用就好(每个人下载下来的wireshark版本也许略有差别,这个教程和我使用的界面基本一致):ubuntu下学习wireshark使用

再来一篇觉得可以让你基本会使用wireshark的博客教程:用WireShark进行网络抓包

关于更详细的wireshark使用还是建议大家上百度~~~

最后我使用wireshark很容易的拿到了自己所需要的数据包~~~


本文由【waitig】发表在等英博客
本文固定链接:Java网络爬虫(十四)–使用tcpdump和wireshark进行网络抓包与分析
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)