从业者-绕过常见防御-黑名单过滤器
  # 实验室:基于黑名单的输入过滤器 中的SSRF
# 题目
此实验室具有库存检查功能,可从内部系统获取数据。
要解决实验室问题,请将库存检查的 URL 更改为http://localhost/admin,以此访问管理界面并删除carlos用户。
开发人员部署了两个脆弱的反 SSRF 防御,你需要绕过它们。
- name: 实验室-从业者
  desc: 基于黑名单的输入过滤器 中的SSRF >>
  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/ssrf/lab-ssrf-with-blacklist-filter
  bgColor: '#001350'
  textColor: '#4cc1ff'
 1
2
3
4
5
6
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 找到 库存检查 功能并更改参数的 URL 值,尝试绕过 SSRF 防御,然后访问管理界面并删除 carlos 用户。
 
点击 “ACCESS THE LAB” 进入实验室。
 来到首页,点击任意商品下方的 “View details” 进入详情页。
 在商品详情页的下方,可以看到一个库存检查功能。
启用浏览器代理,然后点击 “Check stock” 检查库存。
 查看捕获的数据包,在 POST 中存在一个参数stockApi,它直接请求了一个 URL 链接。
 通过 Repeater 功能模块,修改其中的stockApi参数为http://localhost/admin。
访问失败,请求被阻止。
 根据前面学习到的理论知识,使用 IP 地址的第一种替代形式127.1尝试绕过,失败。
http:/admin
 1
 使用 IP 地址的 第二种和第三种 替代形式尝试绕过,皆失败。
http:/admin
http:/admin
 1
2
2
 随后经过尝试,可以使用 “替代IP形式+大小写变体” 进行绕过。
使用 IP 地址替代形式127.1和大小写变体后的路径/Admin进行绕过,成功访问管理界面。
# 第一种IP变体+路径大小写变体=绕过
http:/Admin
# 以下是失败的尝试
http:/admin
http:/admin
http:/Admin
http:/admin
http:/admin
http:/Admin
http:/admin
http:/Admin
...
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
 在此过程中,我还尝试了另外两种的 IP 地址替代形式。
地址2130706433,错误的主机名。
 地址017700000001,应用程序无法访问该地址,响应返回 500 状态码。
 最后,访问管理界面用于删除用户的 URL,以删除 carlos 用户。
http:/Admin/delete?username=carlos
 1
访问成功。
 回到浏览器页面,实验完成。

编辑  (opens new window)