最终效果:普通用户向服务器提交添加用户的表单也可以实现用户添加;
过程:获取数据包--发送数据包--查看效果
1. 攻击者获得表单对应数据包
方法:本地搭建环境抓取数据包
本地登录admin账户后,进行添加用户操作,抓取对应表单数据包。

2. 攻击者发送数据包
攻击者先以普通用户身份登录获得cookie,然后将cookie字段用于第一步得到的数据包中

tip:如果你只是又开了一个窗口登录了普通用户,或许会发现用户的cookie和admin的cookie是一样的。这和session的分发机制有关,不影响实验,你可以在抓到数据包之后就退出admin登录。
3. 查看效果

成功!
注意:
为什么同时登录了用户和管理员,当管理员退出登录后直接提交添加表单会添加失败?
原因在于:退出登录后当前cookie就失效了。刷新会发现需要你重新登录,然后使用新的cookie才会成功。
漏洞原因及修复方案:
我认为这里漏洞产生的原因就在于:在一个浏览器上同时登陆普通用户和管理员时使用的是相同的cookie,并且在进行添加操作时也单检查了cookie。这意味着即使不是管理员只要成功登录获得了cookie就拥有了管理员权限,获得了数据包后使用当前cookie就可以进行管理员操作。
针对这里垂直越权修复方案:
1. 对于特权操作:不单检查cookie,同时检查当前用户id是否具有相应权限
2. 使用token
本文讨论了一种安全漏洞,即在同一浏览器上登录普通用户和管理员时,由于使用相同cookie导致的垂直越权问题。攻击者可以捕获表单数据包,利用普通用户的cookie执行管理员操作。为修复此问题,建议对特权操作不仅检查cookie,还要验证用户ID的权限,并引入token机制增强安全性。
689

被折叠的 条评论
为什么被折叠?



