使用文档利用 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
`administratoradministratorx
Invalid 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#`email
username=administrator%26field=email%23
发送请求。请注意,这将返回原始响应。这表明这是一个有效的字段类型。
email
在“代理> HTTP 历史记录”中,查看 JavaScript 文件。请注意密码重置终结点,它引用了以下参数:
/static/js/forgotPassword.js
`reset_token`/forgot-password?reset_token=${resetToken}
在“中继器”选项卡中,将参数的值从 更改为:
field
`email`reset_token
username=administrator%26field=reset_token%23
发送请求。请注意,这将返回密码重置令牌。记下这一点。
在 Burp 的浏览器中,在地址栏中输入密码重置端点。将密码重置令牌添加为参数的值。例如:
reset_token
/forgot-password?reset_token=123456789
- 设置新密码。
- 使用您的密码以用户身份登录。
administrator
- 转到“管理”面板并删除以解决实验室问题。
carlos
评论0
暂时没有评论