某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

    • 实验室做题记录
    • 服务器端

    • 客户端

      • 跨站脚本(XSS)

        • 学徒-反射型XSS-未编码的HTML上下文
        • 学徒-存储型XSS-未编码的HTML上下文
        • 学徒-DOM型XSS-document.write接收器-location.search源
        • 从业者-DOM型XSS-document.write接收器-location.search源-位于select元素内
        • 学徒-DOM型XSS-innerHTML接收器-location.search源
        • 学徒-DOM型XSS-jQuery锚点href属性接收器-location.search源
        • 学徒-DOM型XSS-jQuery选择接收器-hashchange事件
          • 题目
          • 实操
        • 从业者-DOM型XSS-AngularJS表达式-尖括号与双引号HTML编码
        • 从业者-反射型DOM XSS
        • 从业者-存储型DOM XSS
        • 从业者-XSS上下文-HTML标签之间-反射型XSS-大多数标签和属性被阻止
        • 从业者-XSS上下文-HTML标签之间-反射型XSS-除了自定义标签外的所有标签都被阻止
        • 专家-XSS上下文-HTML标签之间-反射型XSS-事件处理程序和href属性被阻止
        • 从业者-XSS上下文-HTML标签之间-反射型XSS-允许使用SVG标签
        • 学徒-XSS上下文-HTML属性中-反射型XSS-尖括号HTML编码
        • 从业者-XSS上下文-HTML属性中-存储型XSS-锚点href属性与双引号HTML编码
        • 从业者-XSS上下文-HTML属性中-反射型XSS-link规范标签
        • 从业者-XSS上下文-JavaScript字符串中-反射型XSS-单引号和反斜杠转义
        • 学徒-XSS上下文-JavaScript字符串中-反射型XSS-尖括号HTML编码
        • 从业者-XSS上下文-JavaScript字符串中-反射型XSS-尖括号双引号HTML编码和单引号转义
        • 专家-XSS上下文-JavaScript URL中-反射型XSS-某些字符被阻止
        • 从业者-XSS上下文-利用HTML编码-onclick属性中的存储型XSS-尖括号双引号HTML编码-以及单引号反斜杠转义
        • 从业者-XSS上下文-模板字面量-反射型XSS-尖括号单引号双引号反斜杠和反引号Unicode转义
        • 从业者-利用跨站脚本-窃取cookie
        • 从业者-利用跨站脚本-捕获密码
        • 从业者-利用跨站脚本-执行CSRF
        • 专家-内容安全策略-反射型XSS-非常严格的CSP保护-悬挂标记攻击
        • 专家-内容安全策略-反射型XSS-绕过CSP保护
        • 专家-客户端模板注入-反射型XSS-无字符串的AngularJS沙箱逃逸
        • 专家-客户端模板注入-反射型XSS-AngularJS沙箱逃逸与CSP的碰撞
      • 跨站请求伪造(CSRF)

      • 跨域资源共享(CORS)

      • 点击劫持

      • 基于DOM的漏洞

      • WebSockets

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 客户端
  • 跨站脚本(XSS)
carsaid
2023-09-08
目录

学徒-DOM型XSS-jQuery选择接收器-hashchange事件

# 实验室:DOM型XSS-jQuery选择接收器-hashchange事件

# 题目

此实验室在 主页 上包含一个基于 DOM 的跨站脚本漏洞。它使用 jQuery 库的$()选择器函数自动滚动到给定的帖子,其标题通过location.hash属性传递。

若要解决实验室问题,请向受害者发送一个漏洞利用,在其浏览器中调用print()函数。

实验室-学徒

DOM型XSS-jQuery选择接收器-hashchange事件 >>

- name: 实验室-学徒
  desc: DOM型XSS-jQuery选择接收器-hashchange事件 >>
  avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
  link: https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-jquery-selector-hash-change-event
  bgColor: '#001350'
  textColor: '#39d50c'
1
2
3
4
5
6

# 实操

点击 “ACCESS THE LAB” 进入实验室。

Not Found Image

启用浏览器的开发者工具,查看网页源代码时发现一处 JavaScript:

$(window).on('hashchange', function(){
    var post = $('section.blog-list h2:contains(' + decodeURIComponent(window.location.hash.slice(1)) + ')');
    if (post) post.get(0).scrollIntoView();
});
1
2
3
4

以上代码会获取 URL 中的 hash,然后根据 hash 的值将网页滚动到指定的位置。

Not Found Image

在 URL 中添加 hash 符号#,并在符号的后方添加任意一篇博客文章的标题,例如 “Cell Phone Free Zones”。

添加完成之后,访问该 URL。

Not Found Image

访问之后,网页自行滚动到了对应的博客文章处。

Not Found Image

确认 hash 的作用之后,点击上方的 “Go to exploit server” 进入漏洞利用服务器。

Not Found Image

这是漏洞利用服务器中的默认内容:

Not Found Image

访问漏洞利用 URL 后,网页会在响应中返回设置好的内容:

Not Found Image

回到漏洞利用服务器的设置界面,将 “Body” 的内容修改为攻击载荷。

Not Found Image

再次访问 URL,网页返回了刚刚设置的新内容,并正常解析和执行了 alert 函数。

Not Found Image

可以使用iframe标签以及onload事件,来利用刚刚的 hash 滚动功能:

<iframe src="https://0a2800e004b5f84c802c35d200ac00a2.web-security-academy.net/#" onload="this.src+='<img src=1 onerror=print()>'">
1

以上代码定义了一个iframe标签,其src属性值是受害网页的 URL 以及一个 hash 符号#。

在标签内定义一个onload事件,当该标签被加载时,攻击载荷将会被拼接到 URL 的 hash 符号之后,受害网页会解析并执行其中的载荷。

Not Found Image

将 “Body” 设置为上述载荷之后,访问漏洞利用 URL,成功调用 print 函数。

Not Found Image

刚刚是我们自己访问并调用了 print 函数,所以并不能完成实验室。

在漏洞利用服务器中有一段提示,你需要将攻击载荷发送给受害者,并且你的载荷必须兼容 Chrome 浏览器。

Not Found Image

点击下方的 “Deliver exploit to victim” 将设置好的攻击载荷发送给受害者。

Not Found Image

发送之后,实验完成。

Not Found Image

实验完成。

Not Found Image
编辑 (opens new window)
学徒-DOM型XSS-jQuery锚点href属性接收器-location.search源
从业者-DOM型XSS-AngularJS表达式-尖括号与双引号HTML编码

← 学徒-DOM型XSS-jQuery锚点href属性接收器-location.search源 从业者-DOM型XSS-AngularJS表达式-尖括号与双引号HTML编码→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式