使用文档利用 API 端点
lab
实验室:使用文档利用 API 端点 |网络安全学院 (portswigger.net)
solve
- 在 Burp 的浏览器中,使用凭据登录应用程序并更新您的电子邮件地址。
wiener:peter - 在“代理> HTTP 历史记录”中,右键单击请求,然后选择“发送到转发器”。
PATCH /api/user/wiener - 转到“中继器”选项卡。发送请求。请注意,这将检索用户的凭据。
PATCH /api/user/wiener`wiener` - 从请求的路径中删除,因此终端节点现在是 ,然后发送请求。请注意,这将返回错误,因为没有用户标识符。
/wiener`/api/user` - 从请求的路径中删除,因此终端节点现在是 ,然后发送请求。请注意,这将检索 API 文档。
/user`/api` - 右键单击响应,然后选择在浏览器中显示响应。复制 URL。
- 将 URL 粘贴到 Burp 的浏览器中以访问文档。请注意,文档是交互式的。
- 要删除 Carlos 并解决实验室问题,请单击该行,输入 ,然后单击发送请求。
DELETE`carlos`
利用查询字符串中的服务器端参数污染
lab
实验室:利用查询字符串中的服务器端参数污染 |网络安全学院 (portswigger.net)
solve
- 在 Burp 的浏览器中,触发用户的密码重置。
administrator - 在 Proxy > HTTP history 中,请注意请求和相关的 JavaScript 文件。
POST /forgot-password`/static/js/forgotPassword.js` - 右键单击请求,然后选择“发送到” 中继器。
POST /forgot-password - 在“中继器”选项卡中,重新发送请求以确认响应一致。
- 将参数的值从更改为无效的用户名,例如 。发送请求。请注意,这会导致错误消息。
username`administratoradministratorxInvalid username` 尝试使用 URL 编码字符向服务器端请求添加第二个参数值对。例如,添加 URL 编码:
&`&x=y`username=administrator%26x=y发送请求。请注意,这将返回一条错误消息。这表明内部 API 可能被解释为一个单独的参数,而不是用户名的一部分。
Parameter is not supported`&x=y`尝试使用 URL 编码字符截断服务器端查询字符串:
#username=administrator%23发送请求。请注意,这将返回一条错误消息。这表明服务器端查询可能包含一个名为 的附加参数,该参数已被字符删除。
Field not specified`field`#将值无效的参数添加到请求中。截断添加的参数值对后的查询字符串。例如,添加 URL 编码:
field`&field=x#`username=administrator%26field=x%23发送请求。请注意,这会导致错误消息。这表明服务器端应用程序可以识别注入的字段参数。
Invalid field暴力破解参数的值:
field- 右键单击请求,然后选择“发送给入侵者”。
POST /forgot-password 在选项卡中,将有效负载位置添加到参数值中,如下所示:
Intruder`field`username=administrator%26field=§x§%23- 在 Intruder > Payloads 中,单击从列表中添加。选择内置的服务器端变量名称有效负载列表,然后开始攻击。
- 查看结果。请注意,带有用户名和电子邮件有效负载的请求都会返回响应。
200
- 右键单击请求,然后选择“发送给入侵者”。
将参数的值从 更改为 :
field`x#`emailusername=administrator%26field=email%23发送请求。请注意,这将返回原始响应。这表明这是一个有效的字段类型。
email在“代理> HTTP 历史记录”中,查看 JavaScript 文件。请注意密码重置终结点,它引用了以下参数:
/static/js/forgotPassword.js`reset_token`/forgot-password?reset_token=${resetToken}在“中继器”选项卡中,将参数的值从 更改为:
field`email`reset_tokenusername=administrator%26field=reset_token%23发送请求。请注意,这将返回密码重置令牌。记下这一点。
在 Burp 的浏览器中,在地址栏中输入密码重置端点。将密码重置令牌添加为参数的值。例如:
reset_token/forgot-password?reset_token=123456789- 设置新密码。
- 使用您的密码以用户身份登录。
administrator - 转到“管理”面板并删除以解决实验室问题。
carlos
评论0
暂时没有评论