wordpress影视主题模板免费下载,seo快速建站,广告设计制作工作室,正能量视频不打马赛克所需知识
要解决这个实验室问题#xff0c;您需要了解以下内容#xff1a;
如何确定用户输入是否包含在服务器端的 URL 路径或查询字符串中。如何使用路径遍历序列尝试更改服务器端请求。如何查找 API 文档。
这些内容在我们的 API 测试学院主题中有涵盖。
进入实验室 研…所需知识
要解决这个实验室问题您需要了解以下内容
如何确定用户输入是否包含在服务器端的 URL 路径或查询字符串中。如何使用路径遍历序列尝试更改服务器端请求。如何查找 API 文档。
这些内容在我们的 API 测试学院主题中有涵盖。
进入实验室 研究行为
1、 在 Burp Suite 的浏览器中触发管理员administrator用户的密码重置。 2、 在 Proxy HTTP history 中注意到 POST /forgot-password 请求和相关的 /static/js/forgotPassword.js JavaScript 文件。 3、 右键点击 POST /forgot-password 请求并选择发送到 Repeater。
4、 在 Repeater 标签页中重新发送请求以确认响应是一致的。 5、 发送各种修改过的 username 参数值的请求以确定输入是否被放置在服务器端请求的 URL 路径中而没有进行转义
将 URL 编码的 administrator# 作为 username 参数的值提交。注意到返回一个 Invalid route 错误消息。这表明服务器可能将输入放置在了服务器端请求的路径中并且片段截断了一些尾随数据。观察到消息还提到了一个 API 定义。 2. 将 username 参数的值从 administrator%23 改为 URL 编码的 administrator?然后发送请求。注意到这同样返回一个 Invalid route 错误消息。这表明输入可能被放置在了 URL 路径中因为 ? 字符指示查询字符串的开始因此截断了 URL 路径。 3. 将 username 参数的值从 administrator%3F 改为 ./administrator然后发送请求。注意到这返回了原始响应。这表明请求可能访问了与原始请求相同的 URL 路径。这进一步表明输入可能被放置在了 URL 路径中。 4. 将 username 参数的值从 ./administrator 改为 ../administrator然后发送请求。注意到这返回一个 Invalid route 错误消息。这表明请求可能访问了一个无效的 URL 路径。 导航到 API 定义
1、 将 username 参数的值从 ../administrator 改为 ../%23。注意到返回一个 Invalid route 响应。 2、 逐步增加更多的 ../ 序列直到达到 ../../../../%23。注意到返回一个 Not found 响应。这表明您已经导航到 API 根目录之外。 3、 在这个级别上向 URL 路径添加一些常见的 API 定义文件名。例如提交以下内容 username../../../../openapi.json%23
注意到返回一个错误消息其中包含如下用于查找用户的 API 端点
/api/internal/v1/users/{username}/field/{field} 利用这个漏洞
1、 更新 username 参数的值使用已识别的端点结构。为 field 参数添加一个无效值例如usernmae,password,id,uid,sid,eamil,token usernameadministrator/field/foo%23
发送请求。注意到返回一个错误消息因为 API 只支持 email 字段。 2、 将 email 作为 field 参数的值 usernameadministrator/field/email%23
发送请求。注意到返回了原始响应响应包中可以获得添加的参数值且返回值 200。这可能表明服务器端应用程序识别了注入的 field 参数并且 email 是一个有效的字段类型。 3、 在 Proxy HTTP history 中查看 /static/js/forgotPassword.js JavaScript 文件。识别密码重置端点它引用了 passwordResetToken 参数 ###访问路径######也是从json中判断可能存在该功能###/forgot-password?passwordResetToken${resetToken} 4、 在 Repeater 标签页中将 field 参数的值从 email 改为 passwordResetToken usernameadministrator/field/passwordResetToken%23
发送请求。注意到返回一个错误消息因为密码重置端点不支持 passwordResetToken 参数。 5、 使用之前识别的 /api/ 端点将 API 版本改为 username 参数的值
该实验默认一直 API v1 的目录结构
如果不能遍历路径不能文件读取该方法不适用 username../../v1/users/administrator/field/passwordResetToken%23
发送请求。注意到返回一个密码重置令牌请记下这个令牌。 6、 在 Burp Suite 的浏览器中输入密码重置端点地址栏。将您的密码重置令牌添加为 reset_token 参数的值。例如 /forgot-password?passwordResetTokenaa3eqz8ug2igm3zq4quplq13g0jmwae3###拼接链接###https://0a030035031db30981807ace007900da.web-security-academy.net/forgot-password?passwordResetTokenaa3eqz8ug2igm3zq4quplq13g0jmwae3
7、 设置一个新密码。 8、 使用您的新密码以管理员身份登录。 9、 转到管理员面板并删除 carlos 以解决实验室问题。