当前位置: 首页 > article >正文

利用Cookie劫持+HTML注入进行钓鱼攻击

目录

HTML注入和cookie劫持:

发现漏洞

实际利用

来源


HTML注入和cookie劫持:

HTML注入漏洞一般是由于在用户能够控制的输入点上,由于缺乏安全过滤,导致攻击者能将任意HTML代码注入网页。此类漏洞可能会引起许多后续攻击,例如当用户的会话cookie被泄露时,攻击者可以利用这些cookie非法修改其他用户的个人页面。

会话劫持攻击一般涉及Web会话控制原理,其中最主要的是会话令牌管理。

发现漏洞

在某次测试中,我正对某个客户信息页面上的每个输入点进行手动测试。一段时间后,我注意到某些输入没有按预期的进行显示,貌似这里存在缺陷,那么要如何利用这种类型的漏洞呢,难道是登入后才能“激活”这些HTML代码吗?

第一次尝试:尝试利用CSRF漏洞登入,攻击者向受害者发送恶意代码,一旦受害者打开,就会自动登入到攻击者自己的帐户。代码如下:

<html>
      <! - CSRF Login PoC ->
      <body>
      <sc ript> history.pushState ('', '', '/') </ sc ript>
    <form action = "https://private-company.com/account/signin" method = "POST">
          <input type = "hidden" name = "customerlogin" value = "attacker-email@gmail.com" />
          <input type = "hidden" name = "customerpassword" value = "attacker-password" />
          <input type = "submit" value = "Submit request" />
    </ form>
     </ body>
</ html>

很可惜的是,上面的利用代码没能成功,因为后端处理客户登录时涉及到了令牌。

第二次尝试:

Cookie劫持,攻击成功!因为管理用户会话的令牌在用户注销后并没有过期。cookies能在浏览器中继续生效,直到被手动清除。过程如下:

1.我先用一个测试帐户登录,然后点击“注销”。请注意,在这一系列操作后,本该注销的cookies仍在浏览器中:

2.再次注意,这个客户端会话的cookie的过期时间为一年。

3.我用工具复制了所有cookie,然后添加到另一个浏览器,接着再用浏览器访问用户界面,bingo!我成功进入了测试用户的主页面。

很好!是时候和HTML注入结合到一起来制造更大的威胁了。

如前所述,参数“customer_name”存在HTML注入漏洞。为了再次确认,我使用burpsuite截获了一个正常的提交用户信息请求,然后在customer_name插入了H1标签:

接着,我向自己的帐户发送了一封密码找回邮件:

漏洞确认成功!

实际利用

由于name参数存在HTML注入,因此我们可以编写一个假冒页面的HTML代码,最好看起来是需要用户提交的表单。

然后我们利用cookie劫持漏洞,它能让我们利用在浏览器中的cookie去登录受害者帐户。如果受害者是在公共环境中某个局域网中登录的,那么可按照以下步骤利用漏洞攻击。

  1. 当受害者使用公共电脑登录到他的账户。并在操作完成后,通过注销功能离开网站。
  2. 攻击者在受害者使用过的计算机上捕获cookie并登录受害者的帐户。
  3. 攻击者把自定义的恶意HTML代码注入存在漏洞的字段。
  4. 当受害者在重新登录帐户时,就会看到攻击者自定义的“新页面”。

当然,这一攻击需要和受害者进行互动,例如,使用某些著名的网络钓鱼攻击效果会更好。

来源

利用Cookie劫持+HTML注入进行钓鱼攻击|NOSEC安全讯息平台 - 白帽汇安全研究院


http://www.kler.cn/a/2850.html

相关文章:

  • WebAssembly在现代Web开发中的应用
  • C++初阶:类和对象(上)
  • DevOps工程技术价值流:加速业务价值流的落地实践与深度赋能
  • 【数据结构与算法】第11课—数据结构之选择排序和交换排序
  • Android音频架构
  • 使用elementUI实现表格行拖拽改变顺序,无需引入外部库
  • 服务端测试知识汇总
  • 基于原生Javascript的放大镜插件的设计和实现
  • 贪心算法(一)
  • 蓝桥杯刷题冲刺 | 倒计时18天
  • MD5加密竟然不安全,应届生表示无法理解?
  • Java每日一练(20230324)
  • hive之视图
  • 手写一个Promise
  • maya python 中的maya.cmds 与maya.mel模块的区别笔记
  • 新闻文本分类任务:使用Transformer实现
  • A.机器学习入门算法(六)基于天气数据集的XGBoost分类预测
  • 用嘴写代码?继ChatGPT和NewBing之后,微软又开始整活了,Github Copilot X!
  • 【史上最全面esp32教程】oled显示篇
  • 第十四届蓝桥杯三月真题刷题训练——第 21 天
  • 【尝鲜版】ChatGPT插件开发指南
  • 二维图像处理到三维点云处理
  • 嵌入式系统 - 对话
  • LInux下安装libreoffice(用于Linux下Word转pdf,附代码)
  • 无需公网IP,远程连接SQL Server数据库【内网穿透】
  • 【Unityc#专题篇】之c#基础篇