靶场内容:
本实验使用基于序列化的会话机制,因此容易绕过身份验证。解决实验室,编辑会话cookie中的序列化对象以访问该administrator帐户。然后,删除carlos。
您可以使用以下凭据登录自己的帐户: wiener:peter
靶场解析
- 这个靶场的关键知识点在于PHP中的 == 弱比较
- 使用您自己的凭据登录。在 Burp 中,打开登录后GET /my-account请求并使用 Inspector 检查会话 cookie 以显示序列化的 PHP 对象。将此请求发送到 Burp Repeater。
- 在 Burp Repeater 中,使用 Inspector 面板修改会话 cookie,如下所示:
- 将username属性的长度更新为13。
- 将用户名更改为administrator.
- 将访问令牌更改为整数0。由于这不再是一个字符串,您还需要删除围绕该值的双引号。
- 更新更换令牌访问的数据类型的标签s用i。
- 结果应如下所示:
O:4:"User":2:{s:8:"username";s:13:"administrator";s:12:"access_token";i:0;}
- 这样修改的目的是断定token的字符串开头不是以数字开头的,这样 0=="dhufashfosf" 返回的都是ture,如果不是,再做修改即可
- 单击“应用更改”。修改后的对象将在请求中自动重新编码和更新。
- 发送请求。请注意,响应现在包含一个指向管理面板的链接/admin,表明您已以administrator用户身份成功访问该页面。
- 将您的请求路径更改为/admin并重新发送。请注意,该/admin页面包含删除特定用户帐户的链接。
- 将请求的路径更改为/admin/delete?username=carlos并发送请求以解决实验室。