zoukankan      html  css  js  c++  java
  • 实践三 网络嗅探与协议分析

    实践三 网络嗅探与协议分析

    实践要求

    (1)每个人找一个抓包软件,分析其功能,设计的模块等,着重使用和分析。不建议用wireshark,编译过程可能比较难,也可挑战。(3分)

    (2)找一个网站或者搭建一个本地网站,登录网站,并嗅探,分析出账号和密码,结果截图1-2张。(3分)
    可以用邮箱、各类博客、云班课,只能分析自己的账号,严禁做各类攻击,否则后果自负。

    (3)加分项2分:注意本次加分项不加到额外10分里,加到本次实验中。例如,本次实验7分,算上加分可得9分。
    抓取手机App的登录过程数据包,分析账号和密码。可以用邮箱、各类博客、云班课,只能分析自己的账号,严禁做各类攻击,否则后果自负。

    抓包工具使用与分析

    常用的抓包工具

    • tcpdump (linux)

    • tcpflow (linux)

    • wireshark (windows)

    • httpwatch (windows)

    • 浏览器自带抓包工具 (windows)

    使用平台 优点 缺点
    wireshark linux、windows linux平台支持好,功能强
    fidder windows功能 功能强大,支持修改报文
    Charles window、Mac 可以按照域名进行分层级查看 需要收费
    Burp Suite 支持java的平台 黑客喜欢用的功能强大工具

    Fiddler分析与使用

    Fiddler下载地址 :https://www.telerik.com/download/fiddler

    Fiddler网盘下载地址:https://pan.baidu.com/s/1bpnp3Ef 密码:5skw (不是我的网盘)

    Fiddler使用界面简介

    Fiddler主界面的布局如下:

    主界面中主要包括四个常用的块:

    1.Fiddler的菜单栏,位于界面顶层。包括捕获http请求,停止捕获请求,保存http请求,载入本地session、设置捕获规则等功能。

    2.Fiddler的工具栏,位于界面次顶层。包括Fiddler针对当前view的操作(暂停,清除session,decode模式、清除缓存等)。

    3.web Session面板,位于界面左半侧。主要是Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url,协议,状态码,body等信息,详细的字段含义如下图所示:

    4.详情和数据统计面板。针对每条http请求的具体统计(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。如inspector面板下,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息。

    而composer面板下,则可以模拟向相应的服务器发送数据的过程。

    Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。最简单如:过滤内网http请求而只抓取internet的http请求,或则过滤相应域名的http请求。Fiddler的过滤器非常强大,可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求(如css请求,image请求,js请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求。

    Fiddler抓取HTTP请求。

    抓包是Fiddler的最基本的应用,以B站为例,启动Fiddler之后,在浏览器中输入https://www.bilibili.com/ 键入回车之后,在Fiddler的web session界面捕获到的HTTP请求如下图所示:

    其中#号列中的图标,每种图标代表不同的相应类型,具体的类型包括:

    此外,注意请求的host字段。可以看到有来自多个cm.bilibili.com的子域名的响应,说明在大型网站的架构中,大多需要多个子域名,这些子域名可能是单独用于缓存静态资源的,也可能是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)。

    右键一条请求-【save】-【request】-【entire request】,save操作可以保存请求的报文信息,可以是请求报文,可以是响应报文。

    不仅是单条session,Fiddler还支持保存所有抓取到的session(并支持导入),这对于抓取可疑请求然后保存,并在之后随时分析这些请求是很有帮助的。

    如果想要重新发送某些请求,可以选中这些请求,然后点击工具栏中的reply.就可以重新发送选中的这些请求。

    左键点击单条HTTP请求(以我的博客主页为例),可以在右侧的tab面板中看到如下信息:

    Statistic

    关于HTTP请求的性能和其他数据分析:

    可以从中看出一些基本性能数据:如DNS解析的时间消耗是51ms,建立TCP/IP连接的时间消耗是32ms等

    Inspectors

    分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。

    AutoResponder

    Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。当勾选allow autoresponser 并设置相应的规则后(本例中的规则是将https://www.cnblogs.com/qianxiaoxu/ 的请求拦截到本地的文件layout.html)

    桌面新建一个html文件layout.html,随便写点啥

    在浏览器中访问http://blog.csdn.net/ohmygirl,得到的结果实际为

    这刚好是本地layout.html的内容,说明请求已经成功被拦截到本地.当然也可以使用Fiddler的内置响应。下图是Fiddler支持的拦截重定向的方式:

    网站嗅探

    获取账号密码

    打开Fiddler,打开http://www.tykd.com/User/login/ 登录界面随便输入账号密码(不必正确),点击Inspectors tab下的WebForms tab即可查看。

    设置断点修改Request

    一开始没审题,把任务2做错了。。做成设置断点修改Request了。姑且记录一下过程:

    http://www.tykd.com/ ,注册账号

    模拟登录,在浏览器中打开登录页面

    打开Fiddler, 在命令行(左下角黑色区域)中输入bpu http://www.tykd.com/User/login/,回车

    输入错误的用户名和密码,点击登录

    Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion。如下图所示。

    返回页面发现登陆成功

    遇到的问题

    • 问题1:Fiddler对https抓包时,提示"HTTPS decryption is disabled."

    • 问题分析:

    安装完 Fiddler 后,我们每次打开浏览器输入 url,Fiddler 便会捕获到我们的 http 请求(Fiddler 是以代理 web 服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888. 当浏览器打开时 Fiddler 会自动设置代理,退出的时候它会自动注销代理,这样就不会影响别的程序)。但是,如果要捕获 https 的请求,我们还需要进行一些额外的设置。

    要抓取走 HTTPS 的 JS 内容,Fiddler 必须解密 HTTPS 流量。但是,浏览器将会检查数字证书,并发现会话遭到窃听。为了骗过浏览器,Fiddler 通过使用另一个数字证书重新加密 HTTPS 流量。Fiddler 被配置为解密 HTTPS 流量后,会自动生成一个名为 DO_NOT_TRUST_FiddlerRoot 的 CA 证书,并使用该 CA 颁发每个域名的 TLS 证书。若 DO_NOT_TRUST_FiddlerRoot 证书被列入浏览器或其他软件的信任 CA 名单内,则浏览器或其他软件就会认为 HTTPS 会话是可信任的、而不会再弹出“证书错误”警告。

    • 解决:启用https解密。

    打开 Fiddler,在菜单栏中依次选择 【Tools】->【(Telerik) Fiddler Options】->【HTTPS】,勾上如下图的选项



    勾上后,Fiddler会提示你安装一个证书。安装完后点击【Actions】-【Export Root..】按钮,将证书下载到桌面。

    接着将证书导入到浏览器。这里以IE浏览器举例,依次选择【工具】-【Internet选项】-【内容】-【证书】-【导入】,将保存在桌面的证书导入即可。

    也可以直接双击下载下来的证书,进行安装。

    • 问题2:Fiddler的WebForms中body里的数据无法修改

    • 补充:断点命令

    • 问题分析:没有先用bpu把response禁止掉,web已经响应,无法更改。我bpu的是登录网址http://passport.cnblogs.com/login.aspx,但其实它抓取时候的url不是这个了。

    • 解决:右键【copy】-【only URL】,发现命令行输入的命令应为bpu https://account.cnblogs.com/signin

    在Fiddler会话列表面板看到以红色小图标开头被中断的会话说明终端成功。

    • 问题3:模拟博客园的登录时未能成功登录

    用浏览器打开博客园的登录界面: https://account.cnblogs.com/signin

    打开Fiddler, 在命令行(左下角黑色区域)中输入bpu https://account.cnblogs.com/signin

    输入错误的用户名和密码,点击登录

    Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion。如下图所示。

    理论上现在应该能正确登录博客园了,但是

    并且此时红色中断符号也不见了。

    猜测还是由于网站加密缘故,切换成“天翼快递”登陆界面就成功了。

    取消中断是在命令行中输入命令bpu

    • 问题4 :

    一开始企图截获博客园登录的用户名密码

    发现捕获的账号密码都是一长串字母数字,感觉是加密的了。

    • 解决方案:找个http开头的网站,而非https加密过后的

    参考资料

  • 相关阅读:
    python包的安装及依赖-pip wget pipdeptree
    Http、Socket、WebSocket之间联系与区别
    python的https请求移除ssl验证警告
    uwsgi启动django应用 https访问设置问题解决 & uwsgi: unrecognized option '--https' | ubuntu20.04
    图像frame大小计算
    完全实验|不完全实验|
    随机区组设计|拉丁方
    TPO2-3 Early Cinema
    TPO2-1Desert Formation
    TPO9-2Reflection in Teaching
  • 原文地址:https://www.cnblogs.com/qianxiaoxu/p/12577314.html
Copyright © 2011-2022 走看看