未受保护的管理功能
lab
实验室:不受保护的管理功能 |网络安全学院 (portswigger.net)
solve
- 转到实验室并通过追加到实验室 URL 进行查看。请注意,该行公开了管理面板的路径。
robots.txt
`/robots.txt`Disallow
- 在 URL 栏中,替换为 以加载管理面板。
/robots.txt
`/administrator-panel` - 删除。
carlos
具有不可预知 URL 的不受保护的管理功能
lab
实验室:具有不可预知 URL 的不受保护的管理功能 |网络安全学院 (portswigger.net)
solve
- 使用 Burp Suite 或 Web 浏览器的开发人员工具查看实验室主页的源代码。
- 请注意,它包含一些公开管理面板 URL 的 JavaScript。
- 加载管理面板并删除 .
carlos
由请求参数控制的用户角色
lab
实验室:由请求参数控制的用户角色 |网络安全学院 (portswigger.net)
solve
- 浏览并观察您无法访问管理面板。
/admin
- 浏览到登录页面。
- 在 Burp Proxy 中,打开拦截并启用响应拦截。
- 完成并提交登录页面,并在 Burp 中转发生成的请求。
- 请注意,响应设置了 cookie 。将其更改为 。
Admin=false
`Admin=true` - 加载管理面板并删除 .
carlos
可以在用户配置文件中修改用户角色
lab
实验室:可以在用户配置文件中修改用户角色 |网络安全学院 (portswigger.net)
solve
- 使用提供的凭据登录并访问您的帐户页面。
- 使用提供的功能更新与您的帐户关联的电子邮件地址。
- 请注意,响应是否包含您的角色 ID。
- 将邮件提交请求发送到 Burp Repeater,在请求正文中添加 JSON,然后重新发送。
"roleid":2
- 请注意,响应显示 u 已更改为 2。
roleid
- 浏览并删除 。
/admin
`carlos`
由请求参数控制的用户 ID
lab
实验室:由请求参数控制的用户 ID |网络安全学院 (portswigger.net)
solve
- 使用提供的凭据登录并转到您的帐户页面。
- 请注意,URL 在“id”参数中包含您的用户名。
- 将请求发送到 Burp Repeater。
- 将“id”参数更改为 。
carlos
- 检索并提交 的 API 密钥。
carlos
用户 ID 由请求参数控制,用户 ID 不可预知
lab
实验室:用户 ID 由请求参数控制,用户 ID 不可预知 |网络安全学院 (portswigger.net)
solve
- 查找 的博客文章。
carlos
- 单击并观察 URL 是否包含他的用户 ID。记下此 ID。
carlos
- 使用提供的凭据登录并访问您的帐户页面。
- 将“id”参数更改为保存的用户 ID。
- 检索并提交 API 密钥。
由请求参数控制的用户 ID,重定向中存在数据泄漏
lab
实验室:由请求参数控制的用户 ID,重定向中存在数据泄漏 |网络安全学院 (portswigger.net)
solve
- 使用提供的凭据登录并访问您的帐户页面。
- 将请求发送到 Burp Repeater。
- 将“id”参数更改为 。
carlos
- 请注意,尽管响应现在正在将您重定向到主页,但它的正文包含属于 的 API 密钥。
carlos
- 提交 API 密钥。
由具有密码泄露的请求参数控制的用户 ID
lab
实验室:由具有密码泄露的请求参数控制的用户 ID |网络安全学院 (portswigger.net)
solve
- 使用提供的凭据登录并访问用户帐户页面。
- 将 URL 中的“id”参数更改为 。
administrator
- 在 Burp 中查看响应,并观察它是否包含管理员的密码。
- 登录管理员帐户并删除 .
carlos
不安全的直接对象引用
lab
实验室:不安全的直接对象引用 |网络安全学院 (portswigger.net)
solve
- 选择“实时聊天”选项卡。
- 发送消息,然后选择“查看脚本”。
- 查看 URL,并观察脚本是分配了包含递增数字的文件名的文本文件。
- 将文件名更改为并查看文本。请注意聊天记录中的密码。
1.txt
- 返回到实验室主页,然后使用被盗的凭据登录。
可以规避基于 URL的访问控制
lab
实验室:可以规避基于 URL 的访问控制 |网络安全学院 (portswigger.net)
solve
- 尝试加载并观察您是否被阻止。请注意,响应非常简单,表明它可能来自前端系统。
/admin
- 将请求发送到 Burp Repeater。将请求行中的 URL 更改为 并添加 HTTP 标头 。请注意,应用程序返回“未找到”响应。这表示后端系统正在处理标头中的 URL。
/
`X-Original-URL: /invalid`X-Original-URL
- 将标头的值更改为 。请注意,您现在可以访问管理页面。
X-Original-URL
`/admin` - 若要删除,请添加到实际查询字符串中,并将路径更改为 。
carlos
`?username=carlosX-Original-URL
/admin/delete`
可以规避基于方法的访问控制
lab
实验室:可以规避基于方法的访问控制 |网络安全学院 (portswigger.net)
solve
- 使用管理员凭据登录。
- 浏览到管理面板,升级 ,然后将 HTTP 请求发送到 Burp Repeater。
carlos
- 打开私密/隐身浏览器窗口,然后使用非管理员凭据登录。
- 尝试通过将非管理员用户的会话 Cookie 复制到现有的 Burp Repeater 请求中来重新升级该用户,并观察响应是否显示“未经授权”。
carlos
- 将方法从 更改为 to,并观察响应是否更改为 “missing parameter”。
POST
`POSTX` - 通过右键单击并选择“更改请求方法”,将请求转换为使用该方法。
GET
- 将 username 参数更改为您的用户名,然后重新发送请求。
多步骤流程,一步无访问控制
lab
实验室:多步骤流程,一步无访问控制 |网络安全学院 (portswigger.net)
solve
- 使用管理员凭据登录。
- 浏览到管理面板,提升 ,并将确认 HTTP 请求发送到 Burp Repeater。
carlos
- 打开私密/隐身浏览器窗口,然后使用非管理员凭据登录。
- 将非管理员用户的会话 Cookie 复制到现有的 Repeater 请求中,将用户名更改为您的用户名,然后重播。
基于 Referer 的访问控制
lab
实验室:基于引用器的访问控制 |网络安全学院 (portswigger.net)
solve
- 使用管理员凭据登录。
- 浏览到管理面板,升级 ,然后将 HTTP 请求发送到 Burp Repeater。
carlos
- 打开私密/隐身浏览器窗口,然后使用非管理员凭据登录。
- 浏览并观察由于缺少 Referer 标头,请求被视为未经授权。
/admin-roles?username=carlos&action=upgrade
- 将非管理员用户的会话 cookie 复制到现有的 Burp Repeater 请求中,将用户名更改为您的用户名,然后重播。
评论0
暂时没有评论