Lab: Basic SSRF against the local server

一、基础概念

Server-side request forgery (SSRF),服务端请求伪造,简单来说,就是你可以访问A站点,A站点可以访问内网的B站点,你不可以直接访问B站点,但是由于A站点的防护措施或者校验不足,你可以通过控制请求,访问到B站点上的资源,然后A站点将内部网络返回的结果传递给你,你就完成了对内网的攻击。SSRF可能可以实现扫描内网,向内部任意主机的任意端口发送构造的攻击请求,攻击内网WEB应用,读取文件等等。

二、题目

题目链接: https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost

APPRENTICE

This lab has a stock check feature which fetches data from an internal system.

这个实验室有一个库存检查功能,可以从内部系统获取数据。

To solve the lab, change the stock check URL to access the admin interface at http://localhost/admin and delete the user carlos.

要解决实验室问题,请更改库存检查URL以访问的管理界面http://localhost/admin并删除用户carlos

三、实验

打开实验环境,是一个商品页面:

image-20240506164400830

在商品详情中,有一个可以查询库存的按钮:

image-20240506164509496

开启Burpsuit对这个按钮的动作进行抓取:

image-20240506165607493

这里的API:

1
2
3
http%3A%2F%2Fstock.weliketoshop.net%3A8080%2Fproduct%2Fstock%2Fcheck%3FproductId%3D1%26storeId%3D1
URL解码后为
http://stock.weliketoshop.net:8080/product/stock/check?productId=1&storeId=1

根据题目的提示,我们用这个API去访问http://localhost/admin

image-20240506170251909

成功进入到admin页面。于是便可进行删除用户carlos的操作:

在Raw中看到删除的按钮:

1
2
<span>carlos - </span>
<a href="/admin/delete?username=carlos">Delete</a>

image-20240506170601931

问题解决!