热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

梨子带你刷burpsuite靶场系列之客户端漏洞篇点击劫持专题

 本系列介绍PortSwigger是信息安全从业者必备工具burpsuite的发行商,作为网络空间安全的领导者,他们为信息安全初学者提供了一个在线的网络安全学院(也称练兵场),在讲解相关漏洞的同时还配

 

本系列介绍


PortSwigger是信息安全从业者必备工具burpsuite的发行商,作为网络空间安全的领导者,他们为信息安全初学者提供了一个在线的网络安全学院(也称练兵场),在讲解相关漏洞的同时还配套了相关的在线靶场供初学者练习,本系列旨在以梨子这个初学者视角出发对学习该学院内容及靶场练习进行全程记录并为其他初学者提供学习参考,希望能对初学者们有所帮助。

 

梨子有话说


梨子也算是Web安全初学者,所以本系列文章中难免出现各种各样的低级错误,还请各位见谅,梨子创作本系列文章的初衷是觉得现在大部分的材料对漏洞原理的讲解都是模棱两可的,很多初学者看了很久依然是一知半解的,故希望本系列能够帮助初学者快速地掌握漏洞原理。

 

客户端漏洞篇介绍


相对于服务器端漏洞篇,客户端漏洞篇会更加复杂,需要在我们之前学过的服务器篇的基础上去利用。

 

客户端漏洞篇 – 点击劫持专题



什么是点击劫持?

点击劫持,就是诱导受害者点击页面上透明的按钮或链接以发送一些恶意的请求。我们生活中就会遇到很多点击劫持,比如弹窗广告之类的。这是通过iframe技术在页面的最上层设置一个透明的按钮或链接,当用户误以为是点击页面上的按钮或链接时其实是点击的透明的按钮或链接,就神不知鬼不觉地触发了某些恶意请求。它和CSRF的区别就是,点击劫持是一定要受害者点击才会触发的。而且CSRF Token不能用于抵御点击劫持攻击,因为毕竟是受害者主动点击导致发送的请求。


如何构造基础的点击劫持攻击?

点击劫持利用css去创建和操作图层,然后再利用iframe将恶意链接或按钮覆盖在页面最上层。例如




...


...decoy web content here...

得到准确的尺寸以后我们就可以构造payload了

然后将其存储到Exploit Server,当受害者接收到投放的页面以后就会因为点击劫持删除指定用户,这里要注意的是,千万不要自己点,因为删除操作只能执行一次,如果误删了,要等当前的靶场环境过期了才能再次开启靶场,而且靶场过期的时间是大约20分钟,burp并没有给出具体过期时间,这将是非常漫长的等待。


使用预填充表单输入的点击劫持

有的站点允许通过GET参数的方式预填充表单,而不需要用户再手动输入,搭配上点击劫持就会当用户提交表单时提交预填充的表单。


配套靶场:使用从URL参数预填充的表单输入数据的点击劫持

这道靶场的利用方式与上面类似,只需要将iframe的src替换成带有参数值的URL即可

这个位置和标准答案肯定会有出入的,需要不断调,切记不要真的点击,看看位置就好了


破坏框架脚本

从前面我们了解到,只要可以框架化的站点都可能遭受点击劫持攻击。所以我们需要编写脚本去打破这些框架。可以通过JS附加组件或者扩展程序(如NoScript)实现。这些脚本需要实现下面功能。


  • 检查并强制将当前应用程序窗口设置为主窗口或顶级窗口

  • 让所有框架不透明化

  • 阻止点击透明的框架

  • 拦截并标记潜在的点击劫持攻击位置

但是这种技术是特定于浏览器和平台的,而且因为HTML比较灵活,攻击者有很多方法来绕过。并且有的浏览器阻止运行破坏框架脚本或者不支持运行JS脚本。攻击者采用HTML5的iframe沙箱属性来绕过破坏框架脚本。

这个脚本会检查该页面是不是最顶层,如果不是就返回false。所以我们要利用前面提到的方法绕过这个脚本的检测。

这样我们又可以发动点击劫持攻击了。


结合点击劫持和DOM XSS的攻击

这是一种利用DOM XSS和iframe技术结合起来的攻击方式。在iframe的点击劫持中附加DOM XSS的payload,当受害者点击时即可同时触发DOM XSS。


配套靶场:利用点击劫持漏洞触发DOM XSS

我们要找一下有没有相关DOM的操作,发现一个JS脚本(/resources/js/submitFeedback.js),我们看看里面有什么有价值的东西。

发现这里存在DOM XSS漏洞点,于是我们利用点击劫持将DOM XSS payload预填充到name框中

这样就可以利用点击劫持触发DOM XSS了


多重点击劫持

有的时候,需要诱导用户点击多处隐藏的按钮或者链接才能成功实现恶意的目的。下面我们通过一道靶场来讲解。


配套靶场:多重点击劫持

因为要点击两个地方才可以,所以我们的payload也是要设置两个透明的按钮

这两个按钮的位置也是要自己开启标尺以后调的,非常方便。


如何缓解点击劫持攻击?

burp介绍了两种从服务器端缓解点击劫持攻击的方法,具体能不能有效实施还要看浏览器层面。


X-Frame-Options

一开始这个标头被用于IE8的非官方响应头使用的,后面被各浏览器采用。我们通过设置值来限制框架化操作。例如
X-Frame-Options: deny
上面这条表示拒绝任何框架化操作,但是也可以限制框架化的来源为同源。
X-Frame-Options: sameorigin
也可以设置为指定源
X-Frame-Options: allow-from https://normal-website.com
如果将该响应头与CSP结合使用,效果更佳。


内容安全策略(CSP)

XSS篇我们介绍过CSP,我们也可以使用CSP来缓解点击劫持攻击。例如
Content-Security-Policy: frame-ancestors 'self';
这条与X-Frame-Options: sameorigin效果类似,也可以设置为指定源。
Content-Security-Policy: frame-ancestors normal-website.com;

 

总结

以上就是梨子带你刷burpsuite官方网络安全学院靶场(练兵场)系列之客户端漏洞篇 – 点击劫持专题的全部内容啦,本专题主要讲了点击劫持漏洞的形成原理、利用、防护、绕过防护等,感兴趣的同学可以在评论区进行讨论,嘻嘻嘻。


推荐阅读
  • HDU1085 捕获本·拉登!
    问题描述众所周知,本·拉登是一位臭名昭著的恐怖分子,他已失踪多年。但最近有报道称,他藏匿在中国杭州!虽然他躲在杭州的一个洞穴中不敢外出,但近年来他因无聊而沉迷于数学问题,并声称如果有人能解出他的题目,他就自首。 ... [详细]
  • 本文详细探讨了BCTF竞赛中窃密木马题目的解题策略,重点分析了该题目在漏洞挖掘与利用方面的技巧。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 2019-2020学年 20174325 叶竞蔚 《网络对抗技术》实验六:Metasploit基础应用
    本实验旨在掌握Metasploit框架的基本应用方法,重点学习三种常见的攻击方式及其实施思路。实验内容包括一次主动攻击(如MS08-067)、一次针对浏览器的攻击(如MS11-050)以及一次针对客户端的攻击(如Adobe漏洞利用)。此外,还包括成功应用一个辅助模块。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 作为一名CSS初学者,我在博客园中尝试通过CSS美化页面,特别是为超链接添加图标,以提升阅读体验。本文将分享如何使用CSS和字体图标库来实现这一功能。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • BL550721、特点液晶驱动输出:Common输出4线,Segment输出36线内置显示寄存器364144bit2线串行接口(SCL,SDA)内置震荡电路内置液晶驱动电源电路13 ... [详细]
  • IEC60825激光产品安全标准详解
    随着激光技术在全球范围内的广泛应用,尤其是激光投影显示技术的兴起,了解和遵守相关的安全标准变得尤为重要。本文将详细介绍IEC60825激光产品安全标准及其重要性。 ... [详细]
  • Mysqlcheck作为MySQL提供的一个实用工具,主要用于数据库表的维护工作,包括检查、分析、修复及优化等操作。本文将详细介绍如何使用Mysqlcheck工具,并提供一些实践建议。 ... [详细]
  • 第1章选择流程控制语句1.1顺序结构的基本使用1.1.1顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
author-avatar
凌乱LW_502
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有