第二关:Finding and exploiting an unused API endpoint
实验:查找和利用未使用的 API 端点
PortSwigger靶场地址: Dashboard | Web Security Academy - PortSwigger
题目:
官方提示:
在 Burp 的浏览器中,访问实验室并单击一个产品。
在 Proxy > HTTP history(代理 HTTP 历史记录)中,请注意产品的 API 请求。例如。
/api/products/3/price
右键单击 API 请求,然后选择 Send to Repeater (发送到 Repeater)。
在 Repeater 选项卡中,将 API 请求的 HTTP 方法从 更改为 ,然后发送请求。请注意,响应指定允许 和 方法。
GET
OPTIONS
GET
PATCH
将 API 请求的方法从 更改为 ,然后发送请求。请注意,您会收到一条消息。这可能表示您需要进行身份验证才能更新订单。
GET
PATCH
Unauthorized
在 Burp 的浏览器中,使用凭据 登录到应用程序。
wiener:peter
点击 Lightweight “l33t” 皮夹克 产品。
在 Proxy > HTTP history (代理 HTTP 历史记录) 中,右键单击皮夹克的请求,然后选择 Send to Repeater (发送到中继器)。
API/products/1/price
在 Repeater 选项卡中,将 API 请求的方法从 更改为 ,然后发送请求。请注意,这会导致错误,因为不正确。错误消息指定 应为 .
GET
PATCH
Content-Type
Content-Type
application/json
添加标头并将值设置为 .
Content-Type
application/json
添加一个空的 JSON 对象作为请求正文,然后发送请求。请注意,这会导致错误,因为请求正文缺少参数。
{}
price
将值为 的参数添加到 JSON 对象 。发送请求。
price
0
{"price":0}
在 Burp 的浏览器中,重新加载 leather jacket 商品页面。请注意,皮夹克的价格现在是 。
$0.00
将皮夹克添加到您的购物篮中。
转到您的购物篮,然后单击 Place order(下订单)以解决实验问题。