PortSwigger靶场练习---第二关-查找和利用未使用的 API 端点
第二关: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(下订单)以解决实验问题。
第一步:
进入测试界面
第二步:
根据官方提示1 ,先随意的选择一个商品,并建立订单
第三步:
到Burp中,在代理下的HTTP历史记录中可以找到一条有关“ api ”的信息,由于我选择的是列表第三个商品,所以该路径名称为“ /api/products/3/price ”
第四步:
选中后右键,发送到Repeater(中继器)
第五步:
在中继器中发送一次请求,得到了商品价格和讯息:你的邻居刚刚买了一个!(这些不是重点)
第六步:
将“GET”改为“PATCH”再发送请求,在响应框里可以看到显示“Unauthorized”(未经授权)。
第七步:
返回浏览器,使用“ wiener:peter ”(账号:密码)
进行登录。
并返回主页,按照官方提示点击“ Lightweight "l33t" Leather Jacket ”进行下单操作。
随后在burp代理的HTTP历史记录中找到关于皮夹克的PAI,并发送到中继器使用“PATCH”发送请求。
第八步:
响应区显示“仅支持“application/json”Content-Type”,所以我们要更改内容类型。
先修改标头,既:在请求区添加“Content-Type: application/json”,在发送请求后返回了一个错误,它没有找到js对象。
第九步:
添加一个空的json对象,在请求区的最下方输入“ {} ”再点击发送即可。(注意:括号要与上文代码隔开一行)
请求后又出现了新的报错,参考官方“提示12”,我们需要在json对象内添加参数“ "price":0 ”
第十步:
再次发送请求,可以看到返回了一个价格为0的提示,这时我们回到浏览器并返回home主页进行刷新。
可以看到皮夹克的价格已经变为了 0刀乐 ,点进去添加顶点,并在界面右上角区域找到“ 购物篮 ”在购物篮界面点击“ Place order ”,即可通关。
原文地址:https://blog.csdn.net/fnd_LN/article/details/145224792
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!