最近打算通过学校的某某系统抓取一下每个学生的个人信息,由于需要进行模拟登录,所以就要对登录页面进行post参数的提交。但是在进行网络抓包的过程中,使用chrome自带的网络抓包分析工具(也就是F12)发现每次在进行登录提交表格之后,chrome并不能将所需要提交的参数表单抓取下来。(评论区提供的依然使用chrome的方法也可以解决这个问题)
问了学长原因,觉得是登录成功之后因为页面的跳转需要进行刷新,所以就将表单提交的那部分数据给刷掉了。学长提供的解决办法是使用fiddler网络抓包工具进行抓包及分析。但在查阅相关资料之后发现fiddler对Linux操作系统(本人开发环境Ubuntu 16.04)的支持并不是很好。所以我使用了tcpdump进行网络抓包,结合Wireshark进行数据包的分析。
实际上如果不是纯终端界面,很少有人会使用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的使用
Wireshark是一个非常强大的网络分析与监控软件,它不但可以分析网络数据包,也可以进行网络抓包。
安利大家一个Ubuntu下面wireshark安装与部署的教程(亲测有效):ubuntu下安装wireshark(以及配置非root)
当打开wireshark之后,就可以打开我们刚才保存的cap文件,具体的操作过程我不再演示,我们还可以使用wireshark过滤其中的数据,好比我们只需要http协议产生的数据,只需要设置好相应的应用显示过滤器(还有捕获过滤器,具体区别大家baidu)即可。
再安利大家一个简单的Wireshark使用教程吧,其中安装的过程我们不需要再进行学习,直接查看使用就好(每个人下载下来的wireshark版本也许略有差别,这个教程和我使用的界面基本一致):ubuntu下学习wireshark使用
再来一篇感觉不错的Wireshark使用教程:用WireShark进行网络抓包
关于更详细的Wireshark的使用建议大家自己在互联网上寻找资料,博主在这里就不详说啦~~~