反骨仔

一个业余的 .NET Core 攻城狮

0%

12 Fiddler 实现 Cookie 劫持攻击

Cookie 用于维持会话 ,如果这个 Cookie 被攻击者窃取的话,会发生什么呢?Cookie 被窃取相当于会话被劫持。攻击者劫持会话就等于合法登录了他人的账户 ,可以浏览大部分用户资源。

12.1 截获 Cookie 冒充别人身份

Cookie 是很重要的,其用于识别用户身份,假如攻击者截获了别人的 Cookie,是否可以冒充他人的身份登录呢?当然可以。这种黑客技术叫 Cookie 欺骗或者会话劫持。

利用 Cookie 欺骗,不需要知道用户名和密码就可 以直接登录进行操作,从而获取你的信息,修改你的资料,甚至挪用你的资金,这里非常危险的。

通常有两种方法可以截获他人的 Cookie

  1. 通过跨站脚本攻击(XSS)获取他人的 Cookie
  2. 想办法获取别人电脑上保存的 Cookie 文件

12.2 Cookie 劫持的原理

第一步:黑客通过某种手段,比如 xss,得到了 Cookie。

image-20210110150648840

第二步:黑客使用 Cookie,在没有用户名和密码的情况下直接冒充用户的身份登录。

image-20210110150738798

12.3 Cookie 劫持实例介绍

我们通过豆瓣网登录实例来演示 Cookie 劫持过程,具体步骤:

  1. 找到登录的 Cookie 。具体做法是在计算机 A 上登录豆瓣网后,用 Fiddler 抓包,找到跟登录相关的 Cookie ,并把 Cookie 发给计算机 B
  2. 植入 Cookie。具体做法是在计算机 B 上,利用 Fiddler Script 把 Cookie 植入浏览器中,这样计算机 B 不需要用户名和密码,就可以直接登录了。

首先,我们需要使用 Fiddler 找到跟登录相关的 Cookie:

  1. 打开豆瓣网 www.douban.com,用账号和密码登录
  2. 启动 Fiddler,在豆瓣网中单击右上角的用户名,在菜单栏中单击“账号管理“,就跳转到了这个页面:https://www.douban.com/accounts/,抓到的包

image-20210110151153765

  1. 在 Fiddler 中选择 https://www.douban.com/accounts/ 这个 Session,然后用鼠标右键选择 Replay-> Reissue and Edit。在 Raw 选项卡下,找到一个名叫 dbc12 的 Cookie,比如我这里的是:dbc12="163572032:csU04lkxRDg";删除这个 dbcl2 的Cookie ,然后单击“ Run to Completion“放行。

image-20210110151514179

  1. 我们可以发现跳转到 了登录页面。这说明 dbcl2 这个 Cookie 是跟登录相关的,将其删除后就处于未登录状态,Web 服务器会返回 302 状态码,会自动重定向到登录界面。

image-20210110151557939

12.3.2 浏览器中植入 Cookie

我们得到了登录相关的 Cookie,dbcl2=“ 163572032:csU041kxRDg“,只需要把这个 Cookie 植入浏览器中,就可以直接登录该账户进行操作了 。

之前的章节中我们讲解过 Fiddler Script 的用法,Fiddler Script 可以修改任何 HTTP 请求和 HTTP 响应,当然也可以很方便地修改 Cookie。

我们可以找一台新机器,在 Fiddler Script 中的 OnBeforeRequest 函数中添加如下语句

image-20210110151853723

打开 一个浏览器,访问豆瓣网,我们可以 发现自己己处于 登录状态了。

image-20210110151921467

12.4 网站退出的作用

Cookie 是非常重要的。网站登录后,都会有一个退出链接,网站退出是明确地告诉服务器立即删除服务器端的 Session 对象,这样客户端登录的 Cookie 就失效了。如果用户登录某个网站,然后离开的 时候直接关闭浏览器,那么登录的 Cookie 还在,存在被冒用的风险。保险的办法是单击退出而不是直接关闭浏览器。

参考

《HTTP抓包实战》

修订